我对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)
但是我迷路了,我该如何正确:
答案 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")