VBA 从特定位置选择文件?

Posted

技术标签:

【中文标题】VBA 从特定位置选择文件?【英文标题】:VBA pick a file from a specific location? 【发布时间】:2020-08-19 19:43:02 【问题描述】:

我正在尝试将一些代码放在 VBA 中,它将打开一个特定的文件夹,让我选择文件然后继续运行我的代码。

目前我所拥有的(如下)“有效”,因为它将打开一个文件夹,但通常它从一个通用位置(桌面)开始,但不会转到特定文件夹位置让我打开我想要的文件。

Dim Filename as String

filename = Application.GetOpenFilename(FileFilter:="Excel Files,  *.xl*;*.xm*")
If filename <> False Then
Workbooks.Open filename:=filename
End If

我也试过这样的:

Dim Directory as String
Dim Filename as String

Directory = "\\page\data\NFInventory\groups\CID\Retail Setting\Lago Retail Uploads\" & strBrand & "\" & strSeason & "\" & strPrefix & "\"
Filename = Dir(Directory & "*.xl*;*.xm*")
Workbooks.Open Filename:=Directory

但它没有做任何事情,我认为我做的一切都是正确的。任何帮助或推动正确的方向将不胜感激。

-德克

【问题讨论】:

Maybe helpful. 请查看我对这篇文章的回复 [***.com/questions/63318815/….你可能会有所突破。 【参考方案1】:

这将在指定位置启动一个打开对话框:

Sub openBeckJFolder()

    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = True
        .Show
        .InitialFileName = "C:\Users\beckj\"
    End With
 
End Sub

Microsoft document page 并没有真正涉及到它,但FileDialog 有几个功能,例如我在这里使用的InitialFileName

_

更新:打开工作簿

添加的代码允许您突出显示工作簿并单击工作簿上的Opendouble-click 将其打开。

Sub openBeckJFolder()

    Dim Filename As String
    
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = False
        .InitialFileName = "C:\Users\beckj\"
        
        If .Show = True Then
            Filename = .SelectedItems(1)
        End If
    End With
    
    Workbooks.Open (Filename)
    
End Sub

【讨论】:

感谢您的回复!这有点工作,但它没有打开我选择的文件。 做到了。谢谢大家!

以上是关于VBA 从特定位置选择文件?的主要内容,如果未能解决你的问题,请参考以下文章

使用 VBA 从 MS Access 表创建格式化文本文件

如何提示用户在 VBA 中选择文件位置以将文件合并到一个工作簿中

Excel VBA 引用文件夹选择器 *VBA 的新功能 * [重复]

如何让我的浏览对话框转到 VBA 中的特定文件夹?

用户如何选择特定的文件位置在 Flutter 中保存文件

从VBA中的excel中选择多列