excel - 打开网络目录上的文件

标签 excel vba

我试图在打开文件对话框中指定网络目录。

Sub Get_Data()
    'ChDrive "M:\"
    ChDir "\\netDrive\xxx$\yyy"
    FileToOpen = Application.GetOpenFilename _
      (Title:="Please choose a file to import", _
      FileFilter:="Excel Files *.xls (*.xls),")
    ''
    If FileToOpen = False Then
        MsgBox "No file specified.", vbExclamation, "Duh!!!"
        Exit Sub
    Else
        Workbooks.Open Filename:=FileToOpen
    End If
End Sub

驱动器映射为 M,因此如果我替换以下代码,它就可以工作:

    ChDrive "M:\"
    ChDir "\yyy"

我不确定用户是否使用相同的字母映射了驱动器。

有没有办法让宏使用网络路径?

最佳答案

您可以使用 Dir() 测试文件夹是否存在:

Sub Get_Data()
    If Dir("M:\", vbDirectory) <> vbNullString Then
        '''Drive mapped
        ChDrive "M:\"
    Else
        '''Drive not mapped
        ChDir "\\netDrive\xxx$\yyy"
    End If

    FileToOpen = Application.GetOpenFilename _
                (Title:="Please choose a file to import", _
                FileFilter:="Excel Files *.xls (*.xls),")

    If FileToOpen = False Then
        MsgBox "No file specified.", vbExclamation, "Duh!!!"
        Exit Sub
    Else
        Workbooks.Open FileName:=FileToOpen
    End If
End Sub

关于excel - 打开网络目录上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42366047/

相关文章:

excel - 搜索查找值对(在列的 D、E 中)是否存在于查找数组(在列的 A、B 中)的脚本/宏

正则表达式-忽略与模式匹配的常量字符串

excel - VBA Excel-如何在列的行总和超过特定值时显示警报?

vba - 如何获取 IPM.DistList 中的收件人地址?

Excel 数字格式。将我的单元格视为数字,但保留其格式! (即尾随 0)

vba - Excel VBA 选择 - 更好的代码

excel - 除了通过每个特定代码计算之外,还有什么更好的方法来找出代码的 SD?

vba - 清理收藏品的理想方式

excel - MSXML2.XMLHTTP 可以与 Chrome 一起使用吗

vba - 使用 Excel VBA 舍入时如何保留尾随零(或多个零)?