获取文件夹路径为字符串

时间:2019-03-13 20:51:40

标签: excel vba

我对VBA相对较新,目前正在处理一个宏,该宏将在PC之间变化,出于测试目的,我使用直接路径:

Sub VIP()

'Define Folder Paths & Workbooks

Workbooks.Open ("C:\Users\j.lopez\Documents\AdHoc Reports\Serrano\Daily VIP Report Master.xlsx")

打开工作簿,但最终该路径将更改,因此我正在考虑让用户使用以下方式选择文件夹路径:

Application.FileDialog(msoFileDialogFolderPicker)

但是我迷路了,我该如何正确:

  • 1.-要求用户选择包含用于宏的必需文件的文件夹
  • 2.-捕捉路径
  • 3.-替换为WorkBooks.Open

3 个答案:

答案 0 :(得分:0)

1。要求用户选择包含用于宏的必需文件的文件夹:

我建议您对用户使用 FolderDialog Show Dialog ,然后让他/她选择文件夹。接下来,检查所选目录中是否存在必需的文件。使用System.IO.File.Exists(<path>)=<boolean>

2。捕获路径:

仅在验证了文件夹路径之后,即可将文件夹路径保存在变量中。 然后做一个赋值语句, 假设您创建了一个变量' path ',因此,path = path & "\" & <file_name>。 在那里,将其存储在“ 路径”中。

3。将其替换为WorkBooks。打开:

然后使用以下代码:

Workbooks.Open ("C:\Users\j.lopez\Documents\AdHoc Reports\Serrano\" & path)

答案 1 :(得分:0)

通过带有VBA的“浏览文件”选项选择文件或文件夹

' To Select File 

sub select_file()
selected_file = Application.GetOpenFilename(, , "Select File", , False)
End sub

' To Select Folder

Sub selectfolder()

zhr_folder = GetFolder()

End sub



Function GetFolder() As String

Dim fldr As FileDialog

Dim sItem As String

Set fldr = Application.FileDialog(msoFileDialogFolderPicker)

With fldr

    .Title = "Select a Folder"

    .AllowMultiSelect = False

    .InitialFileName = ""

    If .Show <> -1 Then GoTo NextCode

    sItem = .SelectedItems(1)

End With

NextCode:

GetFolder = sItem

Set fldr = Nothing

End Function

发布您可以结合使用文件名和文件夹名来适应您的需求

来源:https://play.google.com/store/apps/details?id=com.vbausefulcodes.dp

答案 2 :(得分:-1)

编辑-

此代码已根据我的需要进行了修改,我在此YouTube视频中找到了它

Dim diaFolder As FileDialog

Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
diaFolder.AllowMultiSelect = False
diaFolder.Show

fle = diaFolder.SelectedItems(1)

Range("A15") = fle

Set diaFolder = Nothing

'Opening WorkBooks

Workbooks.Open (fle & "\Daily Sports VIP Report.xlsx")

视频供参考 -https://www.youtube.com/watch?v=Y4PG2qr9tRM