VBA怎样在一个文件夹中依次打开所有的工作簿 20

我具体想知道VBA中,可不可以通过ForEachIn.......next.所以我想知道是否可以通过这种方式打开,workbooks的上一级是什么。如果没有直接的上一级,... 我具体想知道VBA中,可不可以通过 For Each In .......next.所以我想知道是否可以通过这种方式打开,workbooks 的上一级是什么。
如果没有直接的上一级,可不可以通过某种方式得到。
如果这种方式打不开,可以通过怎样的方式打开。
打开顺序只是按照普通的排列方式排序,依次打开一遍即可,文件的名字不确定。
谢谢大神啦
展开
 我来答
庆年工坊
2015-06-07 · 知道合伙人互联网行家
庆年工坊
知道合伙人互联网行家
采纳数:4233 获赞数:8928

向TA提问 私信TA
展开全部
Sub 打开() 
Dim myPath$, myFile$, AK As Workbook
Application.ScreenUpdating = False '冻结屏幕,以防屏幕抖动 
myPath = "c:\a\" '在这里输入你的路径,即你存放工作簿的文件夹 
myFile = Dir(myPath & "*.xlsx") '依次找寻指定路径中的*.xlsx文件 
Do While myFile <> "" '当指定路径中有文件时进行循环 
If myFile <> ThisWorkbook.Name Then 
Set AK = Workbooks.Open(myPath & myFile) '打开符合要求的文件 
End If 
'在这里插入你要处理的代码
AK.close'这里可以选择参数是否保存,你也可以删除这行代码,手动关闭文件
myFile = Dir '找寻下一个*.xlsx文件 
Loop 
Application.ScreenUpdating = True '解除冻结屏幕,此类语句一般成对使用 
End Sub
Sweet丶奈何
高粉答主

推荐于2017-09-25 · 每个回答都超有意思的
知道大有可为答主
回答量:2.8万
采纳率:82%
帮助的人:4640万
展开全部
参考下面的代码:
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Application.ScreenUpdating = False
If MsgBox("需要操作的数据表是:EXCEL2003 格式,请选择:是!" & Chr(13) & "" & Chr(13) & "需要操作的数据表是:EXCEL2007 格式,请选择:否!", vbYesNo, "北极狐提示!!") = vbYes Then
S = "\*.xls"
ss = 4
Else
S = "\*.xlsx"
ss = 5:
End If
F = Dir(ThisWorkbook.Path & S)
Do While F > " "
If F <> ThisWorkbook.Name Then
Set xlBook = Workbooks.Open(ThisWorkbook.Path & "\" & F) '打开已经存在的EXCEL工件簿文件
For Each sh In xlBook.Worksheets '遍历工作表
with sh
'自己的代码
end with
Windows(ThisWorkbook.Name).Activate'回到打开的工作簿
Next
Windows(F).Close (true)'关闭打开的工作簿,并保存。
F = Dir
Loop
Application.ScreenUpdating = True
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式