Ich verwende den folgenden Code, um den Benutzer für eine Arbeitsmappe aufzufordern, öffnen Sie es, holen Sie einige Informationen aus und schließen Sie es dann. Im Moment adressiere ich die geöffnete Arbeitsmappe mit Hilfe der Arbeitsmappen-Sammlung mit und index ("woorkbooks (2)"). Jetzt muss ich zwei Arbeitsmappen öffnen, und mein Problem ist, dass ich nicht wissen würde, welche der Arbeitsmappen als 2 indiziert werden und welche als 3 indiziert werden. Also dachte ich, dass es einen Weg geben muss, eine Referenz zu jedem zu bekommen Arbeitsmappe.Excel VBA, FileDialog verwenden, um mehrere Arbeitsmappen zu öffnen und sie zu referenzieren
Function openfile() As Boolean
Dim fd As FileDialog
Dim file_was_chosen As Boolean
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
.Filters.Clear
.Filters.Add "Excel File", "*.xl*"
End With
file_was_chosen = fd.Show
If Not file_was_chosen Then
MsgBox "You didn't select a file"
openfile = False
Exit Function
End If
fd.Execute
openfile = True
End Function
Jetzt habe ich den vollständigen Pfad jede Arbeitsmappe bekommen, einige Lösungen für dieses Problem im Zusammenhang gesehen, aber ich würde es vorziehen, vermeiden Sie den vollständigen Pfad verwenden, da sie Worte in verschiedenen Sprachen (und den Namen der Arbeitsmappe enthalten erscheint mit Fragezeichen). Außerdem würde ich eine Lösung bevorzugen, in der der Benutzer nur einmal für 2 Dateien und nicht zweimal aufgefordert wird.
Vielen Dank, genau das habe ich gebraucht! (Und danke, dass du mit meinen Variablen übereinstimmst, es war sehr hilfreich) – Sergey