Excel精英培训网

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

[已解决]求助高手,帮忙看看这个代码错在哪里

[复制链接]
发表于 2010-2-3 22:18 | 显示全部楼层 |阅读模式
我要求一个累计数,当打开4月的表时,累计=1月+2月+3月+4月,同理,当打开12月的工作簿=1月+2月+……+12月,现在这个表的去年累计数正确,但当年累计数不正确,请高手帮我看看错在哪里了?(打开2010年4月的表就可以看出错误) VBOzNHo2.rar (99.73 KB, 下载次数: 2)
发表于 2010-2-3 23:17 | 显示全部楼层    本楼为最佳答案   

Sub ffg()
x = ThisWorkbook.Path & "\"
s = Dir(x & "*.xls")
e = Range("b65536").End(xlUp).Row
Range("e3:e" & e) = Range("c3:c" & e).Value
'Range("e3:e" & e).ClearContents'这里也可省略,直接到上句
Do While s <> ""
If Mid(s, 6, 1) <= Mid(ThisWorkbook.Name, 6, 1) And _
    Mid(s, 1, 4) = Mid(ThisWorkbook.Name, 1, 4) _
    And s <> ThisWorkbook.Name Then
Workbooks.Open (x & s)
Workbooks(s).Sheets(1).Activate

For i = 3 To e

cz = Sheet1.Cells(i, 2)
Set dd = ActiveSheet.Cells
Set sw = dd.Find(cz)
If Not sw Is Nothing Then
er = sw.Row

q = Application.Sheets(1).Cells(er, 3)

End If
 ThisWorkbook.Sheets(1).Cells(i, "e") = ThisWorkbook.Sheets(1) _
    .Cells(i, "e") + q '+ ThisWorkbook.Sheets(1).Cells(i, "c")这里多加了N-1个本月数
    ro = ro + 1
Next
Workbooks(s).Close False
End If
 s = Dir

Loop

'If ro = 0 Then'每仔细看,估计这里是1月份的时候直接加本月数,可省略
'For i = 3 To e
'ThisWorkbook.Sheets(1).Cells(i, "e") = ThisWorkbook.Sheets(1) _
'    .Cells(i, "e") + q + ThisWorkbook.Sheets(1).Cells(i, "c")
'    Next
'End If
End Sub

PS:到你的基础上做了一点修改,也不知道对不对。另:这个代码有点长,用字典不知道是否会好些

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 21:48 , Processed in 0.242645 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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