EXCEL2010 vba 循环打开某些文件夹下的excel文件 50

DirC函数是读取公交车这个文件夹下面所有文件夹的名字,并且存储在目录.xlsx中,这个函数执行是成功。model函数是循环打开公交车文件夹下每个文件夹里面的目录1.xl... DirC函数是读取公交车这个文件夹下面所有文件夹的名字,并且存储在目录.xlsx中,这个函数执行是成功。
model函数是循环打开公交车文件夹下每个文件夹里面的目录1.xlsx,打开之后并关闭。运行程序时,发现以下语句是错误的。希望老师能帮我修改以下。
Workbooks.Open ("C:\Documents and Settings\Administrator\桌面\调查数据\编程程序\公交车\" & str1 & "目录1.xlsx")

Sub DirC()
Mypath = "C:\Documents and Settings\Administrator\桌面\调查数据\编程程序\公交车\"
Workbooks.Open ("C:\Documents and Settings\Administrator\桌面\调查数据\编程程序\公交车\目录.xlsx")
MyName = dir(Mypath, vbDirectory) ' 找寻第一项。
i = 1
Do While MyName <> "" ' 开始循环。
' 跳过当前的目录及上层目录。
If MyName <> "." And MyName <> ".." Then
' 使用位比较来确定 MyName 代表一目录。
If (GetAttr(Mypath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' 如果它是一个目录,将其名称显示出来。
Workbooks("目录.xlsx").Sheets(1).Cells(i - 2, 1).Value = MyName
End If
End If
MyName = dir ' 查找下一个目录。
i = i + 1
Loop
End Sub

Sub model()
'
' model Macro
'
' 快捷键: Ctrl+p
'
Application.ScreenUpdating = False
Dim str1 As String
i = 1
Workbooks.Open ("C:\Documents and Settings\Administrator\桌面\调查数据\编程程序\公交车\目录.xlsx")
While Workbooks("目录.xlsx").Sheets(1).Cells(i, 1).Value <> ""
str1 = Workbooks("目录.xlsx").Sheets(1).Cells(i, 1).Value
Workbooks.Open ("C:\Documents and Settings\Administrator\桌面\调查数据\编程程序\公交车\" & str1 & "目录1.xlsx")
Workbooks("目录.xlsx").Save
Workbooks("目录.xlsx").Close
i = i + 1
Wend
End Sub
展开
 我来答
合标儒W
2015-11-10 · 知道合伙人养生行家
合标儒W
知道合伙人养生行家
采纳数:1030 获赞数:29893
就读于河南中医学院针灸推拿学,现为学生,读过医学类书籍近百本。

向TA提问 私信TA
展开全部
就是遍历文件夹嘛,关键代码如下
在工程-引用里添加 microsoft scripting run time
然后用下面的两个函数递归遍历 就可以了
sub main()
Dim objFSO As Object
Dim objTemplateFolder As Object
Set objFSO = New Scripting.FileSystemObject
Set objTemplateFolder = objFSO.GetFolder(“D:\”)
getFiles objTemplateFolder
end sub

Sub getFiles(ByRef theFolder As Object)
Dim folder As Object
Dim c As New Scripting.FileSystemObject
‘此处执行你的操作:打开关闭文件夹,取名字等
For Each folder In theFolder.subFolders
getFiles folder ’递归遍历子文件夹
Next
End Sub
兼程100603
2012-01-11 · TA获得超过208个赞
知道答主
回答量:79
采纳率:100%
帮助的人:37.3万
展开全部
str1 两边有 “\" 吗????
而且 “目录1.xlsx” 也没有被关闭啊。每次关闭的是 “目录.xlsx" 。
系统是不能打开同名文件的。
关闭的时候可以这样关闭 :
set wb = Workbooks.Open ("C:\Documents and Settings\Administrator\桌面\调查数据\编程程序\公交车\" & str1 & "目录1.xlsx")
wb.Close Savechanges:=True
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式