gewünschten Code
Set InBook = Workbooks.Open(Filename:=RefSheet.Cells(file, 1) & RefSheet.Cells(file, 2), UpdateLinks:=False, ReadOnly:=True)
zu
Dim fName As String
If Dir(RefSheet.Cells(file, 1) & RefSheet.Cells(file, 2))<>"" Then
fName = RefSheet.Cells(file, 1) & RefSheet.Cells(file, 2)
ElseIf Dir(RefSheet.Cells(file, 1) & RefSheet.Cells(file, 2) & ".xlsm")<>"" Then
fName = RefSheet.Cells(file, 1) & RefSheet.Cells(file, 2) & ".xlsm"
Else
fName = RefSheet.Cells(file, 1) & RefSheet.Cells(file, 2) & ".xlsx"
End If
Set InBook = Workbooks.Open(Filename:=fName, UpdateLinks:=False, ReadOnly:=True)
Dies wird erste Test von
ändern
, wenn der Dateiname zu sehen ist genau so, wie es in Spalte B aufgezeichnet ist. Wenn nicht, wird es sehen, ob eine Datei mit einer "xlsm" -Extension existiert, und wenn ja, benutze sie. Andernfalls wird angenommen, dass die Datei die Erweiterung "xlsx" hat.
Eine alternative Methode (was wahrscheinlich auch mit csv und txt-Dateien funktionieren wird) wäre:
Dim fName As String
'The Dir command will just return the filename.extension portion of the first file that matches the specification
fName = Dir(RefSheet.Cells(file, 1) & RefSheet.Cells(file, 2) & ".*")
If fName = "" Then
'No matching file was found
MsgBox "File requested (" & RefSheet.Cells(file, 1) & RefSheet.Cells(file, 2) & ") does not exist"
Else
'Concatenate the path and filename.extension together and open the file
Set InBook = Workbooks.Open(Filename:=RefSheet.Cells(file, 1) & fName, UpdateLinks:=False, ReadOnly:=True)
End If
P. S. Die Deklaration von fName kann an den Anfang Ihres Subs (oder der Funktion) verschoben werden, wenn Sie es vorziehen, dass alle Ihre Deklarationen im Voraus ausgeführt werden.
Ist der Code, den Sie VBA teilen? Bitte fügen Sie das zugehörige Tag hinzu, wenn es –
ist. Enthält Ihr Dateiname (Spalte B von RefSheet?) nicht die Dateierweiterung, und Ihr Problem ist, dass Sie nicht wissen, welches zu verwenden? – YowE3K
Danke für Ihre Antwort. Was ich wirklich testen muss, ist das Format der eigentlichen Datei im Ordner. Es ist einfach genug, meinen Pfadnamen zu testen, aber ich muss in der Lage sein zu sehen, ob die eigentliche Datei .xlsx oder .xlsm ist. Dann muss ich den Namen in Spalte B mit .xlsx oder .xlsm entsprechend ändern – rCorn