You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access调用Excel GetOpenFileName时如何设置默认文件路径

问题原因

你当前使用的ChDrive、ChDir是修改Access进程本身的工作路径,不会作用于你单独创建的Excel实例对象,因此调用Excel的GetOpenFilename时不会生效。

解决方案1:直接修改Excel实例的默认打开路径

修改你创建的Excel对象的DefaultFilePath属性即可指定选择框的默认路径,不需要调用ChDrive/ChDir,用完还可以还原用户原本的默认路径避免影响用户后续使用:

Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = True

' 先保存用户原本的Excel默认路径
Dim originalPath As String
originalPath = ExcelApp.DefaultFilePath

' 设置你需要的默认路径
ExcelApp.DefaultFilePath = "V:\Accounting\Projects\In Work\Project Database\"

RawData = ""
RawData = ExcelApp.Application.GetOpenFilename

' 还原用户原本的默认路径
ExcelApp.DefaultFilePath = originalPath

Set ExcelApp = Nothing

If RawData <> "False" Then ' 增加取消判断,避免用户点关闭后代码报错
    DoCmd.TransferText acImportDelim, , "tbl_Stage", RawData, True
End If

解决方案2:使用Access自带的文件选择框(更推荐)

你只是需要获取CSV文件的路径,完全不需要额外启动Excel实例,直接用Access自带的FileDialog即可,资源占用更低,逻辑也更简单,还可以直接限制可选的文件格式:

Dim fileDialog As Object
Dim RawData As String
Set fileDialog = Application.FileDialog(3) ' 3对应文件选择器常量msoFileDialogFilePicker

With fileDialog
    .InitialFileName = "V:\Accounting\Projects\In Work\Project Database\"
    .Filters.Clear
    .Filters.Add "CSV数据文件", "*.csv" ' 限制仅显示CSV文件,降低用户选错概率
    .AllowMultiSelect = False
    
    If .Show = -1 Then ' 用户选中文件点击确认后执行导入
        RawData = .SelectedItems(1)
        DoCmd.TransferText acImportDelim, , "tbl_Stage", RawData, True
    End If
End With

Set fileDialog = Nothing

内容的提问来源于stack exchange,提问作者Shaves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:15:03