Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4240|回复: 10

[已解决]怎么回事呢

[复制链接]
发表于 2012-7-16 12:00 | 显示全部楼层 |阅读模式
   
Sub ccccccc()
Dim ret As String
Dim ret1 As String
Dim arr
Application.DisplayAlerts = False
ret1 = ThisWorkbook.Name
ret = ret & Left(ret1, 4) & Format(Mid(ret1, 6, 3) + 1, "00") & Right(ret1, 17)
Dim wb1 As Workbook, wb2 As Workbook
    '打开工作簿后加如下代码
    Set wb1 = Workbooks(ret)
    Set wb2 = Workbooks(ret1)
   wb2.Sheets("直接人工-调理品").[m8] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m8"), wb2.Sheets("直接人工-调理品").Range("f8"))
   wb2.Sheets("直接人工-调理品").[m9] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m9"), wb2.Sheets("直接人工-调理品").Range("f9"))
   wb2.Sheets("直接人工-调理品").[m10] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m10"), wb2.Sheets("直接人工-调理品").Range("f10"))
   wb2.Sheets("直接人工-调理品").[m11] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m11"), wb2.Sheets("直接人工-调理品").Range("f11"))
   wb2.Sheets("直接人工-调理品").[m12] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m12"), wb2.Sheets("直接人工-调理品").Range("f12"))
   wb2.Sheets("直接人工-调理品").[m13] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m13"), wb2.Sheets("直接人工-调理品").Range("f13"))
   wb2.Sheets("直接人工-调理品").[m14] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m14"), wb2.Sheets("直接人工-调理品").Range("f14"))
   wb2.Sheets("直接人工-调理品").[m15] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m15"), wb2.Sheets("直接人工-调理品").Range("f15"))
   wb2.Sheets("直接人工-调理品").[m16] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m16"), wb2.Sheets("直接人工-调理品").Range("f16"))
   wb2.Sheets("直接人工-调理品").[m17] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m17"), wb2.Sheets("直接人工-调理品").Range("f17"))
   wb2.Sheets("直接人工-调理品").[m18] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m18"), wb2.Sheets("直接人工-调理品").Range("f18"))
   wb2.Sheets("直接人工-调理品").[m19] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m19"), wb2.Sheets("直接人工-调理品").Range("f19"))
   wb2.Sheets("直接人工-调理品").[m20] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m20"), wb2.Sheets("直接人工-调理品").Range("f20"))
   wb2.Sheets("直接人工-调理品").[m21] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m21"), wb2.Sheets("直接人工-调理品").Range("f21"))
   wb2.Sheets("直接人工-调理品").[m22] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m22"), wb2.Sheets("直接人工-调理品").Range("f22"))
   End Sub


这个是我弄的 代码 为什么运行下来是



本年累计预算

F

#VALUE!

#VALUE!

#VALUE!

#VALUE!

#VALUE!

#VALUE!

#VALUE!

#VALUE!

#VALUE!

#VALUE!

#VALUE!

#VALUE!

#VALUE!

#VALUE!

#VALUE!

#VALUE!


工作薄都打开了 怎么这样的错呢呢  我怎么检查呀? 是代码哪错了吗?
最佳答案
2012-7-16 12:17
简化代码如下
  1. Sub ccccccc()
  2. Dim ret As String
  3. Dim ret1 As String
  4. Dim arr, R As Integer
  5. Application.DisplayAlerts = False
  6. ret1 = ThisWorkbook.Name
  7. ret = ret & Left(ret1, 4) & Format(Mid(ret1, 6, 3) + 1, "00") & Right(ret1, 17)
  8. Dim wb1 As Object, wb2 As Object
  9.     '打开工作簿后加如下代码
  10.     Set wb1 = Workbooks(ret).Sheets("直接人工-调理品")
  11.     Set wb2 = Workbooks(ret1).Sheets("直接人工-调理品")
  12.     For R = 8 To 22
  13.         wb2.Cells(R, "M") = Application.Sum(wb1.Cells(R, "M"), wb2.Cells(R, "F"))
  14.     Next
  15.    End Sub
复制代码
发表于 2012-7-16 12:10 | 显示全部楼层
按F8 一步一步运行 代码:
看一下 WB2 名称是否正确!
回复

使用道具 举报

发表于 2012-7-16 12:12 | 显示全部楼层
回复

使用道具 举报

发表于 2012-7-16 12:17 | 显示全部楼层    本楼为最佳答案   
简化代码如下
  1. Sub ccccccc()
  2. Dim ret As String
  3. Dim ret1 As String
  4. Dim arr, R As Integer
  5. Application.DisplayAlerts = False
  6. ret1 = ThisWorkbook.Name
  7. ret = ret & Left(ret1, 4) & Format(Mid(ret1, 6, 3) + 1, "00") & Right(ret1, 17)
  8. Dim wb1 As Object, wb2 As Object
  9.     '打开工作簿后加如下代码
  10.     Set wb1 = Workbooks(ret).Sheets("直接人工-调理品")
  11.     Set wb2 = Workbooks(ret1).Sheets("直接人工-调理品")
  12.     For R = 8 To 22
  13.         wb2.Cells(R, "M") = Application.Sum(wb1.Cells(R, "M"), wb2.Cells(R, "F"))
  14.     Next
  15.    End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2012-7-16 12:21 | 显示全部楼层
mxg825 发表于 2012-7-16 12:10
按F8 一步一步运行 代码:
看一下 WB2 名称是否正确!

分部看没什么问题呀
未命名3.jpg
回复

使用道具 举报

 楼主| 发表于 2012-7-16 12:25 | 显示全部楼层
mxg825 发表于 2012-7-16 12:17
简化代码如下

这个 和我的 一样都是有那错误
不知道为什么 因为是服务器上的 所以没办法传附件 老师帮助 看看我那分步骤的截图看看能否找出问题所在
回复

使用道具 举报

 楼主| 发表于 2012-7-16 12:37 | 显示全部楼层
谢谢 老师 弄好了
回复

使用道具 举报

发表于 2012-7-16 12:41 | 显示全部楼层
ret = ret & Left(ret1, 4) & Format(Mid(ret1, 6, 3) + 1, "00") & Right(ret1, 17)

ret返回的 名称 正不正确?(不可能 问题出在这里)

上传附件 测试
回复

使用道具 举报

 楼主| 发表于 2012-7-16 12:46 | 显示全部楼层
mxg825 发表于 2012-7-16 12:41
ret = ret & Left(ret1, 4) & Format(Mid(ret1, 6, 3) + 1, "00") & Right(ret1, 17)

ret返回的 名称 正 ...

谢谢老师的帮助 我弄好了 代码这样的
Sub cccccccccc()
Dim ret As String
Dim ret1 As String
Dim arr
Application.DisplayAlerts = False
ret1 = ThisWorkbook.Name
ret = Left(ret1, 4) & Format(Mid(ret1, 6, 3) + 1, "00") & Right(ret1, 17)
Dim wb1 As Workbook, wb2 As Workbook
    '打开工作簿后加如下代码
    Set wb1 = Workbooks(ret)
    Set wb2 = Workbooks(ret1)
   wb2.Sheets("直接人工-调理品").[m8] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m8"), wb2.Sheets("直接人工-调理品").Range("b8"))
   wb2.Sheets("直接人工-调理品").[m9] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m9"), wb2.Sheets("直接人工-调理品").Range("b9"))
   wb2.Sheets("直接人工-调理品").[m10] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m10"), wb2.Sheets("直接人工-调理品").Range("b10"))
   wb2.Sheets("直接人工-调理品").[m11] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m11"), wb2.Sheets("直接人工-调理品").Range("b11"))
   wb2.Sheets("直接人工-调理品").[m12] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m12"), wb2.Sheets("直接人工-调理品").Range("b12"))
   wb2.Sheets("直接人工-调理品").[m13] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m13"), wb2.Sheets("直接人工-调理品").Range("b13"))
   wb2.Sheets("直接人工-调理品").[m14] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m14"), wb2.Sheets("直接人工-调理品").Range("b14"))
   wb2.Sheets("直接人工-调理品").[m15] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m15"), wb2.Sheets("直接人工-调理品").Range("b15"))
   wb2.Sheets("直接人工-调理品").[m16] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m16"), wb2.Sheets("直接人工-调理品").Range("b16"))
   wb2.Sheets("直接人工-调理品").[m17] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m17"), wb2.Sheets("直接人工-调理品").Range("b17"))
   wb2.Sheets("直接人工-调理品").[m18] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m18"), wb2.Sheets("直接人工-调理品").Range("b18"))
   wb2.Sheets("直接人工-调理品").[m19] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m19"), wb2.Sheets("直接人工-调理品").Range("b19"))
   wb2.Sheets("直接人工-调理品").[m20] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m20"), wb2.Sheets("直接人工-调理品").Range("b20"))
   wb2.Sheets("直接人工-调理品").[m21] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m21"), wb2.Sheets("直接人工-调理品").Range("b21"))
   wb2.Sheets("直接人工-调理品").[m22] = Application.Sum(wb1.Sheets("直接人工-调理品").Range("m22"), wb2.Sheets("直接人工-调理品").Range("b22"))
   
   
   

End Sub
我把这ret = Left(ret1, 4) & Format(Mid(ret1, 6, 3) + 1, "00") & Right(ret1, 17)改了

回复

使用道具 举报

 楼主| 发表于 2012-7-16 12:48 | 显示全部楼层
mxg825 发表于 2012-7-16 12:41
ret = ret & Left(ret1, 4) & Format(Mid(ret1, 6, 3) + 1, "00") & Right(ret1, 17)

ret返回的 名称 正 ...

http://www.excelpx.com/thread-253088-1-1.html
老师我还有个 这样的问题帮助我看看呗 这个 没解决呢{:021:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-14 05:58 , Processed in 0.339442 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表