VBA在使用用Application.GetOpenFilename时如何设定对话框打开路径?

另外,在VBA里试着修改“默认文件位置”的方法(Application.DefaultFilePath = ThisWorkbook.Path),在运行代码之后,马上查看“选项-常规”时,“默认文件位置”已经的确改为当前文件所在的位置了,可是点击“打开文件”对话框时,却不是当前位置而依然是你“上一次”打开的位置!呵呵,我晕菜了。
是否有其他关键点我没有弄好么?还请大师多为指教。谢谢!

您好,

Application.GetOpenFilename 方法不具备这种功能的!

 

替代方案如下:

Sub Demo()
    With Application.FileDialog(msoFileDialogOpen)
        .InitialFileName = "D:\"
        .Show
    End With
End Sub

 如果实在要用 Application.GetOpenFilename 方法,可以在调用之前加两行代码,比如需要在打开前定位到的目录为 “D:\123”,那么可以这样写:

ChDrive "D:\"
ChDir "D:\123"
Application.GetOpenFilename

 

注意,这里的 ChDrive 和 ChDir 两个函数都不是 Unicode 函数,如果您的目录包括 Unicode 字符,则执行代码时会报错!因此,从兼容 Unicode 的角度来讲,还是不推荐这个方法。

追问

非常感谢您的答复!
其实,我最终是想通过Application.GetOpenFilename来直接打开当前文件所在的位置,而事先不必确定在哪个具体位置的。获得当前工作簿所在的位置倒是简单,我是想通过“打开文件”对话框的方式来直接指向目的地读取同位置的目标文件。

追答

试下这个:

Sub Demo()
    Dim strCurPath As String    ' 应用程序的当前路径.
    Dim strWbkPath As String    ' 工作簿所在的路径.    

    On Error GoTo ERR_EXCEPTION    

    strCurPath = CurDir$
    strWbkPath = ThisWorkbook.Path    

    ' /* 应用程序的当前路径不是工作簿所在的路径. */
    If StrComp(strCurPath, strWbkPath) <> 0 Then
        ChDrive strWbkPath
        ChDir strWbkPath
    End If
    
    Application.GetOpenFilename

    Exit Sub    

ERR_EXCEPTION:

    MsgBox Err.Description, vbCritical, "Error"
End Sub

温馨提示:内容为网友见解,仅供参考
无其他回答

VBA在使用用Application.GetOpenFilename时如何设定对话框打开路径?
您好,Application.GetOpenFilename 方法不具备这种功能的!替代方案如下:Sub Demo() With Application.FileDialog(msoFileDialogOpen) .InitialFileName = "D:\\" .Show End WithEnd Sub 如果实在要用 Application.GetOpenFilename 方法,可以在调用之前加两行代码,比如需要在打开前定位到的...

excel vba Application.GetOpenFilename 如何为开启的视窗指定路径为当...
FileName = Application.GetSaveAsFilename(ThisWorkbook.Path)If FileName = "False" Then Exit Sub Set wb = Workbooks.Add wb.SaveAs FileName End Sub

VBA 这个Application.GetOpenFilename具体怎么操作?
不能显示文件夹路径 Application.GetOpenFilename(文件类型筛选规则(就是说明)优先显示第几个类型的文件标题是否允许选择多个文件名)打开类型只限excel文件 设置打开某类文件可以用下面的规则 文件类型说明文字,文件类型后辍Sub t1()Dim f 打开WPS文字,进入excel界面 点击上方工具栏中的开发工具,VB编辑器...

VBA即用型代码手册之根据对话框选择打开文件
以下是根据对话框选择打开文件的VBA代码:Sub mynzvba_open_dialog()Dim strFile As String strFile = Application.GetOpenFilename()Workbooks.Open (strFile)End Sub 此代码段简洁明了,通过使用Application.GetOpenFilename()函数显示文件对话框,用户可以选择要打开的文件。随后,通过Workbooks.Open(st...

VBA中怎么通过打开文件的对话框获取选择文件的路径并在其他模块中引用该...
1.插入一个模块或在已有的模块最上面一行定义一个全局变量 比如: Public iFileName As String 2.在这个工作薄的其他模块中都可以引用这个变量 比如:(先执行一次test1,再执行test2)Sub test1()'打开一个选择文件的对话框 iFileName = Application.GetOpenFilename End Sub Sub test2()If iFileName = ...

Excel VBA 进阶—— 打开文件方法:GetOpenFilename方法
GetOpenFilename方法是Excel VBA中的关键工具,它能显示"打开"对话框,让使用者选取文件进行后续操作。值得注意的是,此方法不会自动打开文件。使用语法:GetOpenFilename方法包含四个参数,确保使用者能够灵活操作。实际应用:GetOpenFilename方法常用于选择多个文件,并通过open方法执行文件操作,如多文件合并...

Cad 用vba 二次开发 想知道怎么用打开文件对话框选择文件或者文件夹,获...
我也想知道,Excel的VBA有一个Application.GetOpenFilename可以用,但是CAD的VBA找不到类似的方法和对象。

利用VBA选择并打开多个工作簿文件
下面的VBA代码先用Application.GetOpenFilename方法显示“打开”文件对话框,然后打开所选择的一个或多个Excel工作簿文件。Sub OpenWorkbooks()On Error Resume Next Dim SelectFiles As Variant ‘显示打开文件对话框 SelectFiles = Application.GetOpenFilename("Excel 文件 (*.xl*)," "*.xl*", ,...

Excel VBA系列之GetOpenFilename方法的多选参数
arr(1)返回选中文件的第一个路径,而非arr(0)。通过Workbooks.Open arr(1)可以打开该文件。为了批量打开所选的多个文件,只需要执行相关代码并选择文件后点击“打开”。所选文件将全部被打开。借助Excel VBA的GetOpenFilename方法和上述代码,可以轻松选择文件夹中的文件并执行后续操作。

如何用VBA打开选择文件和选择路径的对话框
'在文件对话框对中返回选择一个文件夹的路径.Public Function ChooseFolder() As String Dim dlgOpen As FileDialog Set dlgOpen = Application.FileDialog(msoFileDialogFolderPicker)With dlgOpen If .Show = -1 Then ChooseFolder = .SelectedItems(1)End IfEnd With Se...

相似回答