Ich verwende ein Excel 2013-Makro zum Extrahieren von Daten aus einer benutzerdefinierten Arbeitsmappe und meine VBA ist ein bisschen eingerostet.Erhalten Arbeitsmappe Verweis von Dialogfeld Öffnen
Application.GetOpenFilename
fragt den Benutzer nach einem Speicherort, öffnet die Datei und gibt eine Zeichenfolge zurück. Workbooks.Open(string)
gibt ein Arbeitsbuch zurück - wenn Sie den Namen im Voraus wissen.
Ich möchte diese kombinieren, um den Benutzer fragen, welche Datei zu öffnen, und eine Arbeitsmappe zurückgeben.
Basierend auf Frank Antwort hier (Open a workbook using FileDialog and manipulate it in Excel VBA) Ich habe das versucht:
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
aber dies fällt auf die Kommentarzeile über mit Run-time error '5': Invalid procedure call or argument.
Wie ich den Benutzer haben prompt eine Excel-Datei zu öffnen und einen Verweis darauf als Arbeitsmappe zurückgeben?
versuchen Sie den Code in meiner Antwort unter –