VBA统计文件夹下EXCEL文件中某一工作簿的数据

zydscaline 2012-06-12 10:24:40
某一文件夹下有许多EXCEL2003的文件,每个文件基本格式一样,现在要求把其中一个叫"基础表"的工作簿的中的数据统计出来,我试了新建个空表Book1.xls,然后在其VBA中这样写
Sub s123()
Dim f$
Dim i As Integer
Dim sh1
Set sh1 = Worksheets(1)

f = Dir(ThisWorkbook.Path & "\*.xls")
Do While f <> ""
If f <> "Book1.xls" And f <> ThisWorkbook.Name Then
Workbooks.Open f
sh1.Cells(i, 1) = Workbooks(f).Sheets(1).Cells(5, 2)
'......................
End If
Workbooks(f).Close False

Loop


End Sub
这样不行在sh1.Cells(i, 1) = Workbooks(f).Sheets(1).Cells(5, 2)
这一句中提示错误424,要求对象,大家指点下,该怎么写,



原来的东东掉了,也想不起来了,人老了也没用了,在线等
...全文
220 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zydscaline 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
i 木有赋值
[/Quote]郁闷,应为要复的东东多,所以要做个循环,却忘记将i最初赋值了,,重新给i赋值,并加上i=i+1的循环,重新提示:错误1004,应用程序定义或定义对象错误
zyg0 2012-06-12
  • 打赏
  • 举报
回复
i 木有赋值
zydscaline 2012-06-12
  • 打赏
  • 举报
回复
Do While myfile <> "" And myfile <> "Bokk1.xls"红色的不能加,加了后它会只运行一部分,遇到Book1后就停了,所以后面应该用sh1.Cells(i, 1) = wk.Sheets("基础表").Cells(5, 1)或者sh1定义为一个未使用的SHEET如SHEET2之类的
zydscaline 2012-06-12
  • 打赏
  • 举报
回复
  Dim i As Integer
Dim sh1, myPath, myfile, wk
Set sh1 = Worksheets(1)
Application.DisplayAlerts = False
myPath = ThisWorkbook.Path & "\"
myfile = Dir(myPath & "\*.xls")
Do While myfile <> "" And myfile <> "Bokk1.xls"
If myfile <> ThisWorkbook.Name Then
Set wk = Workbooks.Open(myPath & "\" & myfile)
i = i + 1
sh1.Cells(i, 1) = wk.Sheets(1).Cells(5, 1)
wk.Close True
End If
myfile = Dir
Loop
Application.DisplayAlerts = True
Ok了

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧