Excel 打开默认为指定网络路径的对话框(非驱动器)

Excel 打开默认为指定网络路径的对话框(非驱动器),excel,vba,Excel,Vba,我正在尝试将“打开”对话框默认分配给网络上的特定文件夹。让我们使用路径: \\test\yes\no\ 下面的代码不起作用,但也不会出错。我不知道我做错了什么 Private Declare Function SetCurrentDirectory _ Lib "kernel32" _ Alias "SetCurrentDirectoryA" ( _ ByVal lpPathName As String) _ As Long SetCurrentDirectory "\\test\yes\n

我正在尝试将“打开”对话框默认分配给网络上的特定文件夹。让我们使用路径:

\\test\yes\no\
下面的代码不起作用,但也不会出错。我不知道我做错了什么

Private Declare Function SetCurrentDirectory _
Lib "kernel32" _
Alias "SetCurrentDirectoryA" ( _
ByVal lpPathName As String) _
As Long

SetCurrentDirectory "\\test\yes\no\"
我见过一些人这样做的方式,但似乎没有什么对我起作用。如果有帮助的话,我正在使用excel 2010

我的目录代码:

With Application.FileDialog(msoFileDialogFolderPicker)
    SetCurrentDirectory "\\test\yes\no\"
    .AllowMultiSelect = False
        If .Show <> -1 Then MsgBox "No folder selected! Exiting script.": Exit Sub
    myDir = .SelectedItems(1)
        End With

    MsgBox "Please choose the folder."
    Application.DisplayAlerts = False
        '*********************************************************************************************
    'Check for .xls cutsheets; open one at a time with a loop until all file data has been copied
    '*********************************************************************************************
    folderPath = myDir
        If Right(folderPath, 1) <> "\" Then folderPath = folderPath + "\"
    fileName = Dir(folderPath & "*.xls")
        Do While fileName <> ""
    Application.ScreenUpdating = False
        Set wbkCS = Workbooks.Open(folderPath & fileName)
与Application.FileDialog(msoFileDialogFolderPicker)
SetCurrentDirectory“\\test\yes\no”
.AllowMultiSelect=False
如果.Show-1,则MsgBox“未选择任何文件夹!正在退出脚本。”:Exit Sub
myDir=.SelectedItems(1)
以
MsgBox“请选择文件夹。”
Application.DisplayAlerts=False
'*********************************************************************************************
'检查.xls剪切表;使用循环一次打开一个,直到复制完所有文件数据
'*********************************************************************************************
folderPath=myDir
如果正确(folderPath,1)“\”则folderPath=folderPath+“\”
fileName=Dir(folderPath&“*.xls”)
文件名“”时执行此操作
Application.ScreenUpdating=False
设置wbkCS=Workbooks.Open(文件夹路径和文件名)

我可以使用以下命令打开一个对话框:

Private Declare Function SetCurrentDirectory _
Lib "kernel32" _
Alias "SetCurrentDirectoryA" ( _
ByVal lpPathName As String) _
As Long


Sub OpenDialogInNetworkPath()
    SetCurrentDirectory "\\test\yes\no\"
    FileToOpen = Application.GetOpenFilename _
    (Title:="Please choose a file to import", _
    FileFilter:="Excel Files *.xls (*.xls),")
    Workbooks.Open Filename:=FileToOpen
End Sub

这有用吗?您能发布完整的宏吗?

我无法使用
应用程序.FileDialog
设置当前目录来运行宏。但是,使用
InitialFileName
属性并将其设置为
“\\test\yes\no\”
(即仅指定路径)确实有效

With Application.FileDialog(msoFileDialogFolderPicker)
    .InitialFileName = "\\test\yes\no\"
    .AllowMultiSelect = False
    If .Show <> -1 Then MsgBox "No folder selected! Exiting script.": Exit Sub
        myDir = .SelectedItems(1)
End With
与Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName=“\\test\yes\no\”
.AllowMultiSelect=False
如果.Show-1,则MsgBox“未选择任何文件夹!正在退出脚本。”:Exit Sub
myDir=.SelectedItems(1)
以

32位还是64位office?我也很奇怪,但是它是32位的。所以您确实获得了“打开文件”对话框,但文件夹不是SetCurrentDirectory指定的文件夹?@Kim,这是正确的。这是我上次打开的目录。
SetCurrentDirectory
在Office 2003和Office 2013上对我有效,只要共享存在。还有一个细节,我将发布代码。我让脚本在文件夹中的所有文件中循环,但我不知道这会对目录块产生怎样的影响?好吧,那么它现在突然开始工作了?这里发生了一些奇怪的事情,因为我遇到了映射驱动器的UNC问题。所以,我今天就到此为止,把这件事记下来。谢谢你的帮助!我很乐意帮忙。我忍不住注意到你接受了它,然后又不接受它。这个问题有没有答案?我很乐意继续帮忙。谢谢。。。哇,我今天充满了失败。事实上,正是Kim在下面的建议让我开始工作。我不知道为什么这么简单,但在测试了多种打开方式后,它就可以工作了。哈哈哈,没问题,我很高兴至少有人能为你工作!祝你余下的项目好运。有空我会试试这个金姆;它仍然不能正常工作。