|
本帖最后由 乐乐2006201506 于 2016-6-24 10:18 编辑
希望可以在下面代码的基础上改进,或者另写同样结果的代码,下面代码只是遍历一层文件夹中的文件并达到相应要求,希望达到所有层文件夹中所有文件,并达到相应要求,谢谢!网上找到的自己都不会修改,看不懂,所以才在论坛上求助。谢谢!
- Sub test()
- p = "C:\Users\Administrator\Desktop\花名册测试文件\"
- f = Dir(p & "*.xls")
- Do While f <> ""
- Workbooks.Open p & f
- With ActiveWorkbook.VBProject.VBComponents("thisworkbook").CodeModule
- .InsertLines 1, "sub test()"
- .InsertLines 2, "msgbox ""just a test""" '双引号中的双引号,2个代表1个.
- .InsertLines 3, "end sub"
- End With
- ActiveWorkbook.SaveAs Filename:=p & Replace(f, ".xls", ".xlsm"), FileFormat:=52
- ActiveWorkbook.Close True
- f = Dir
- Loop
- End Sub
看看这样行不行
- '***********递归获取本文件夹及所有子文件夹下所有文件名,
- Dim w(1 To 10000), s%
- Sub test()
- p = "C:\Users\Administrator\Desktop\花名册测试文件"
- On Error Resume Next
- s = 0
- zdir p
- For i = 1 To s
- If w(i) Like "*.xls" And w(i) <> ThisWorkbook.FullName Then
- Workbooks.Open w(i)
- With ActiveWorkbook.VBProject.VBComponents("thisworkbook").CodeModule
- .InsertLines 1, "sub test()"
- .InsertLines 2, "msgbox ""just a test""" '双引号中的双引号,2个代表1个.
- .InsertLines 3, "end sub"
- End With
- ActiveWorkbook.SaveAs Filename:=p & Replace(f, ".xls", ".xlsm"), FileFormat:=52
- ActiveWorkbook.Close True
- End If
- Next
- End Sub
- Sub zdir(p) '递归获得本文件夹及所有子文件夹内文件名
- Set fs = CreateObject("scripting.filesystemobject")
- For Each f In fs.GetFolder(p).Files
- If f <> ThisWorkbook.FullName Then s = s + 1: w(s) = f
- Next
- For Each m In fs.GetFolder(p).SubFolders
- zdir m
- Next
- End Sub
复制代码
|
|