【问题标题】:Wildcards Not Working on Excel 15 VBA Dir()通配符不适用于 Excel 15 VBA Dir()
【发布时间】: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*")

知道我可能做错了什么吗?

【问题讨论】:

  • vFilesPathFilesPath?您的代码示例和描述使用两个不同的名称。
  • 如果您添加一行MsgBox vFilesPath,它是否列出了正确的文件夹? (另请注意,如果尚未保存工作簿,则 ActiveWorkbook.Path 不会返回任何内容。
  • 对示例/描述感到抱歉,这里是一个错字。
  • 是的,如果我 MsgBox vFilesPath,它会显示完整路径。 (工作簿也已保存)。
  • 这与您使用的是 Mac 相关,因为 Mac 不使用 windows 等通配符。请参阅:stackoverflow.com/a/10046053/8112776——我认为该链接仅与问题部分相关;我不是 Mac 用户,但我知道他们处理文件搜索的方式不同。

标签: vba excel wildcard


【解决方案1】:

与您使用的是 Mac 相关,因为 Mac 不使用 Windows 等通配符。

您需要一种不同的方法或一个新的(重新措辞的)问题,以获取有关使用 VBA 处理 Mac 文件系统的更多信息。

This 应该可以帮助您入门。

(作为 O.P. 请求的答案发布。):-)

【讨论】:

  • @Oliver - 不要忘记 ✓ Accept 一个有助于解决您的问题的答案...您将获得 +2 声誉,并且答案的作者得到 +15 代表。当您的声望达到 15 时,您可以 ▲ Upvote 任何有用的答案,这也将奖励作者加上您的反馈投票的形式有利于Stack Overflow 整个社区!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 1970-01-01
相关资源
最近更新 更多