VBA - 在没有驱动器号的服务器上使用目录路径

时间:2018-05-08 09:29:18

标签: excel vba excel-vba

我有许多宏具有以下路径定义:

"X:\Test\3rd Party\Other Files\"

但是我需要的,就是我对vbscripts所做的,是这样的:

"\\ServerName\Folder\Test\3rd Party\Other Files\"

这是因为其中包含宏的文件位于服务器上,并且任何有权访问服务器的人都需要执行这些文件 - 因为每个人都可能使用不同的字母映射驱动器和/或者有不同的访问级别,第一个选项不起作用。

当我使用它时:

"\\ServerName\Folder\Test\3rd Party\Other Files\"

我收到错误:

  

抱歉,我们无法找到\ ServerName \ Folder \ Test \ 3rd Party \ Other   文件。它是否可能被移动,重命名或删除?

当我使用它时:

"\\ServerName\Folder\Test\3rd Party\Other Files"
  • 请注意字符串末尾缺少反斜杠

我收到错误:

  

Excel无法访问"其他文件"。该文件可能是只读的或   加密。

Sub RenameOriginalFilesSheets()

    Const TestMode = True
    Dim WB As Workbook

    Application.ScreenUpdating = False
    rootpath = "\\ServerName\Folder\Test\Terminations\"

    aFile = Dir(rootpath & "*.xlsx")
    Do
        Set WB = Application.Workbooks.Open(rootpath & aFile, False, AddToMRU:=False)

        WB.Sheets(1).Name = Left$(WB.Name, InStrRev(WB.Name, ".") - 1)
        WB.Close True

        aFile = Dir()
        DoEvents
    Loop Until aFile = ""

    Application.ScreenUpdating = True

End Sub

1 个答案:

答案 0 :(得分:2)

试试这个,我在VBA中进行测试,然后就可以了。

Sub serverfolder()
    Dim StrFile As String
    StrFile = Dir("\\ServerIP\Folder\" & "*")
    Do While StrFile <> ""
         StrFile = Dir
    Loop
End Sub