【发布时间】:2018-01-10 03:41:08
【问题描述】:
我一直在尝试在这里做一些非常简单的事情,但是无论出于何种原因,它都不起作用。
我要做的就是使用通配符从特定目录中获取所有 .txt 文件。
这是我正在使用的完整代码:
Sub RenameFiles()
'Variables Declaration
Dim vSpreadsheetPath As String
Dim vFolderName As String
Dim vFilesPath As String
Dim vFile As String
Dim vRow As Long
Dim vFilter As String
'Getting the vFile path
vSpreadsheetPath = ActiveWorkbook.Path
vFolderName = "COMBINED FOLDER"
vFilter = "*.txt"
vFilesPath = vSpreadsheetPath & Application.PathSeparator & vFolderName & Application.PathSeparator
vFile = Dir(vFilesPath & vFilter)
MsgBox (vFile)
End Sub
但结果中没有显示任何内容。
最奇怪的是: 如果我使用
file = Dir(vFilesPath & "filename.txt")
有效
但如果我尝试使用任何通配符,比如下面的那个,它不会。
file = Dir(vFilesPath & "filename.t*")
知道我可能做错了什么吗?
【问题讨论】:
-
vFilesPath或FilesPath?您的代码示例和描述使用两个不同的名称。 -
如果您添加一行
MsgBox vFilesPath,它是否列出了正确的文件夹? (另请注意,如果尚未保存工作簿,则ActiveWorkbook.Path不会返回任何内容。 -
对示例/描述感到抱歉,这里是一个错字。
-
是的,如果我 MsgBox vFilesPath,它会显示完整路径。 (工作簿也已保存)。
-
这与您使用的是 Mac 相关,因为 Mac 不使用 windows 等通配符。请参阅:stackoverflow.com/a/10046053/8112776——我认为该链接仅与问题部分相关;我不是 Mac 用户,但我知道他们处理文件搜索的方式不同。