我正在使用Excel 2013宏从用户选择的工作簿中提取数据,我的vba有点生疏 .
Application.GetOpenFilename
提示用户输入文件位置,打开文件并返回一个字符串 . Workbooks.Open(string)
返回工作簿 - 如果您事先知道该名称 .
我想结合这些来询问用户打开哪个文件,并返回一个工作簿 .
基于弗兰克的回答(Open a workbook using FileDialog and manipulate it in Excel VBA)我试过这个:
Function openDataFile() As Workbook
'
Dim wb As Workbook
Dim filename As String
Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.AllowMultiSelect = False
fd.Title = "Select the file to extract data"
'filename = fd.SelectedItems(1)
Set wb = Workbooks.Open(fd.SelectedItems(1))
openDataFile = wb
End Function
但这会在 Run-time error '5': Invalid procedure call or argument.
的注释行中落空
如何提示用户打开excel文件,并将其作为工作簿返回?
2 回答
请尝试以下代码:
然后我添加了下面的Sub来测试这个功能:
看起来你没有显示
FileDialog
所以可能是这样的: