【发布时间】:2015-01-27 07:49:14
【问题描述】:
我目前在其中一个宏中有此代码用于工作。它位于一个用于浏览要查看的文件夹的按钮下方,它将获取 .DGN 并将它们添加到列表框。
我不太了解代码,希望有人可以快速了解一下。此外,代码只查看.DGNs 的选定文件夹,我希望它也查看子文件夹,这可能吗?
Dim myFSO As New Scripting.FileSystemObject
Dim myFolder As Scripting.Folder
Dim myFile As Scripting.File
Dim myShell As New Shell32.Shell
Dim myRootFolder As Shell32.Folder3
Set myRootFolder = myShell.BrowseForFolder(0, "Pick", 0)
If myRootFolder Is Nothing Then Exit Sub
Set myFolder = myFSO.GetFolder(myRootFolder.Self.path)
txtCurrentFolder.Text = myRootFolder.Self.path
lstFilesInFolder.Clear
For Each myFile In myFolder.Files
Select Case UCase(Right(myFile.Name, 3))
Case "DGN"
If IsFileIn(myFile.path, lstFilesToProcess) = False Then
lstFilesInFolder.AddItem myFile.path
End If
End Select
Next
【问题讨论】:
-
一般来说,宏会查看与工作簿位于同一目录中的每个文件,检查名称是否以“DGN”结尾,然后将其添加到字典/集合中。查看所有子文件夹的最佳方法是使用递归。 Here is a post 显示了一些示例。 (只是我搜索中出现的第一个,我没有特别选择它的原因)
标签: vba excel microstation