DIR() 函数在 excel VBA 中给出运行时错误 52 和通配符组合



我正在运行一个代码来自动化报告。自动化的一部分是去共享点站点,根据通配符部分打开一个文件,然后继续使用代码。

我正在使用 DIR() 根据通配符组合返回确切的文件名。

它在大多数情况下工作正常,但在某些特定的触发器中,它会在调用 DIR() 的行处遇到运行时错误 52。

特别是当通过VPN调用或从excel宏文件的电子邮件附件运行时。

我必须通过删除通配符组合并实际使用确切的文件名重新排列它以使其再次工作来手动运行该 DIR(),否则它将无法移动。

需要帮助使其更加稳定或一致。FSO可以在这里解决我的问题以及如何解决吗?

提到遇到错误的代码:

Public Cmbval As String
Public actwbk As String
Public Sub Report()
Dim myPath As String
Dim myFile As String
Dim Cmbval As String
Select Case Cmbval
      Case Is = "Dec-15"
      myPath = ("\wbcspaces@SSLmyteams")
      myFile = Dir("\wbcspaces@SSLmyteamsRptnm2015-12-*.csv*")
      If (myFile = "") Then
      MsgBox "No file found"
      UserForm1.Show
      Exit Sub
      Else
     'Do something
      End If
      End Select

我找到了这个,这可能会对你有所帮助

经过多次试验和错误,我终于能够确定 有问题的 str文件名(派生自 Mailitem.ConversationTopics) 具有一个或多个制表符 (Ascii 9) 在使用 Dir 或 Kill 语句时禁止这样做。 我 具有 alread 运行代码以从中删除任何其他不允许的字符 文件名,所以花了一段时间才弄清楚这甚至是一个 选择。

这是我用来解决这个问题的代码,通过在 制表符:

strFilename = Replace(strFilename, Chr(9), " ") 

从那时起,代码运行顺利。

最新更新