我正在尝试使用 MS Access VBA 中的文件对话框获取完整路径和文件名。
我想做的是通过调用此函数来打开单击按钮时的文件对话框。此函数应返回从文件对话框中选择的完整路径和文件名。
我评论了循环部分,因为我只想选择单个文件。
在我选择文件后,此函数返回错误 Error: 0
到目前为止,这是我的代码。
谁能找出问题所在吗?
谢谢
Public Function SelectTheFile() As String
On Error GoTo SelectTheFile_ErrorHandler
Dim fDialog As Office.FileDialog
Dim varFile As Variant
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.AllowMultiSelect = False
.Title = "Please select one file"
If .Show = True Then
'For Each varFile In .SelectedItems
'SelectTheFile = varFile
'Debug.Print SelectTheFile
'Next
SelectTheFile = .SelectedItems(1)
Debug.Print SelectTheFile
Else
Debug.Print "Cancel"
End If
End With
SelectTheFile_ErrorHandler:
Set fd = Nothing
MsgBox "Error " & Err & ": " & Error(Err)
End Function
最佳答案
无论文件对话框结果如何,您的代码始终会到达 SelectTheFile_ErrorHandler:
部分
您必须在该部分之前退出该函数
Public Function SelectTheFile() As String
On Error GoTo SelectTheFile_ErrorHandler
Dim fDialog As Office.FileDialog
Dim varFile As Variant
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.AllowMultiSelect = False
.Title = "Please select one file"
If .Show = True Then
'For Each varFile In .SelectedItems
'SelectTheFile = varFile
'Debug.Print SelectTheFile
'Next
SelectTheFile = .SelectedItems(1)
Debug.Print SelectTheFile
Else
Debug.Print "Cancel"
End If
End With
Exit Function '<==== exit here, otherwise code goes on to following section
SelectTheFile_ErrorHandler:
Set fDialog = Nothing
MsgBox "Error " & Err & ": " & Error(Err)
End Function
关于vba - 使用 FileDialog 选择文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35626449/