我正在使用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文件,並將其作爲工作簿返回給它?
請在我的回答中試試下面的代碼 –