excel - 如何遍历子文件夹?
问题描述
以下代码适用于指定文件夹。
如何让它适用于所有子文件夹X:\DataArchive\CMM\reports\
?
Sub Copying()
Dim FSO As Object
Dim sFile As String
Dim sSFolder As String
Dim sDFolder As String
Dim fileExtn As String
fileExtn = ".PDF" ''File extension
sSFolder = "X:\DataArchive\CMM\reports\2019_01\" ''Source folder
sDFolder = "C:\Users\sc00709\Desktop\501 28\" ''Destination folder
Dim i As Integer
i = 2
Do While i < 74
With ThisWorkbook
''Filename
sFile = Dir(sSFolder & "364_040_501_0_D_OP270_INSP_" & _
Worksheets("50128").Cells(i, 2) & "*" & fileExtn)
''Create Object for File System
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FileExists(sSFolder & sFile) Then
ElseIf Not FSO.FileExists(sDFolder & sFile) Then
''Copying
FSO.CopyFile (sSFolder & sFile), sDFolder, TRUE
Else
End If
End With
i = i + 1
Loop
MsgBox "You did it!", vbInformation, "Done!"
End Sub
解决方案
这是遍历文件夹中所有文件夹的代码
Sub Main()
Dim FileSystem As Object
Set FileSystem = CreateObject("Scripting.FileSystemObject")
ExecuteOnAllSubFolders FileSystem.GetFolder("X:\DataArchive\CMM\reports\")
End Sub
Sub ExecuteOnAllSubFolders(Folder)
Dim SubFolder
For Each SubFolder In Folder.SubFolders
ExecuteOnAllSubFolders SubFolder
'Perform your operations here
Next
'Perform your operations and here
End Sub
推荐阅读
- python - 创建 CSV 以将正则表达式中的变量用逗号分隔 python
- html - 三星手机和 Firefox 不支持电子邮件模板表情符号数字
- php - 仅对一个查询禁用 MySQL 严格模式 Laravel 5.6
- c# - 如何映射一对多的休眠类映射
- typescript - 使用 vuex 时如何在 typescript 语法中使用 mapState 函数?
- javascript - Angular 混合应用程序中的依赖注入(AngularJS 和 Angular 5)
- python - 为什么不使用 scipy 的最小化最小化平方误差给出与使用曲线拟合相同的结果?
- c# - 我可以使用 WPF 从 DomEventArgs 获取鼠标坐标吗
- c - 如何规避 GCC 中的格式截断警告?
- go - 如何访问gorm.Model.ID?