Jes*_*mon 11 excel file-io vba
从上一个问题我知道如何让用户点击"浏览器"按钮并导航到他们可能想要打开的特定文件.
码:
Private Sub CommandButton2_Click()
Dim vaFiles As Variant
vaFiles = Application.GetOpenFilename()
ActiveSheet.Range("B9") = vaFiles
End Sub
Run Code Online (Sandbox Code Playgroud)
我想创建第二个浏览器按钮,让用户导航到一个文件夹.该文件夹将保存.pdf
我的程序创建的文件.这是问题所在:GetOpenFilename
要求用户单击文件.如果文件夹中没有文件,那么用户无法做任何事情.
我希望这很清楚......
谢谢
chr*_*sen 24
使用Application.FileDialog对象
Sub SelectFolder()
Dim diaFolder As FileDialog
Dim selected As Boolean
' Open the file dialog
Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
diaFolder.AllowMultiSelect = False
selected = diaFolder.Show
If selected Then
MsgBox diaFolder.SelectedItems(1)
End If
Set diaFolder = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
小智 5
已经为此添加了ErrorHandler,以防用户点击取消按钮而不是选择文件夹.因此,您不会收到可怕的错误消息,而是会收到一条消息,指出必须选择一个文件夹然后例程结束.下面的代码还将文件夹路径存储在范围名称中(它只链接到工作表上的单元格A1).
Sub SelectFolder()
Dim diaFolder As FileDialog
'Open the file dialog
On Error GoTo ErrorHandler
Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
diaFolder.AllowMultiSelect = False
diaFolder.Title = "Select a folder then hit OK"
diaFolder.Show
Range("IC_Files_Path").Value = diaFolder.SelectedItems(1)
Set diaFolder = Nothing
Exit Sub
ErrorHandler:
Msg = "No folder selected, you must select a folder for program to run"
Style = vbError
Title = "Need to Select Folder"
Response = MsgBox(Msg, Style, Title)
End Sub
Run Code Online (Sandbox Code Playgroud)