Die VBA-Programmiersprache (Visual Basic for Applications) wird häufig in Excel verwendet, um Aufgaben zu automatisieren und die Leistung zu verbessern. Eine dieser Aufgaben kann darin bestehen, den Namen des Arbeitsblatts nach dem Dateinamen zu erhalten. Dies kann beispielsweise nützlich sein, wenn Sie abhängig von der ausgewählten Datei mit verschiedenen Arbeitsblättern interagieren müssen.
Es gibt mehrere Möglichkeiten, dieses Problem zu lösen. Eine davon ist die Verwendung einer VBA-Funktion, die den Arbeitsblattnamen nach Dateinamen zurückgibt. Dazu können wir die Eigenschaft "Name" des Workbook-Objekts verwenden, die den Dateinamen zurückgibt oder festlegt.
VBA: Listenname = ThisWorkbook.Name
In diesem Fall steht "ThisWorkbook" für die aktuell geöffnete Excel-Datei und "Name" für die Eigenschaft, die den Dateinamen zurückgibt. Wenn Sie nur den Blattnamen ohne Dateierweiterung erhalten möchten, können Sie die VBA-Funktion "Left" verwenden, die die angegebene Anzahl von Zeichen zurückgibt (in diesem Fall ohne Dateierweiterung).
Excel: suche nach einem Blattnamen nach einem Dateinamen
In Excel können Sie den Namen eines Arbeitsblatts einfach mithilfe einer Formel oder eines Makros finden. Dies kann nützlich sein, wenn Sie viele Excel-Dateien mit unterschiedlichen Arbeitsblattnamen haben und nach einem bestimmten Arbeitsblatt mit seinem Namen suchen müssen.
Um zu beginnen, müssen Sie die Excel-Datei öffnen, in der Sie den Namen des Arbeitsblatts finden möchten. Wählen Sie dann die Zelle aus, in die Sie das Suchergebnis einfügen möchten.
Mithilfe einer Formel können Sie die Funktion =PROHLOOKUP(Suchzeichenfolge, Datenbereich, Ergebniszeichenfolge, ungefähre Übereinstimmung) verwenden, um nach dem Namen des Arbeitsblatts nach dem Dateinamen zu suchen. Hier:
- Suchzeichenfolge ist der Name der Datei, nach der Sie den Namen des Blattes suchen möchten.
- datenbereich ist der Bereich, in dem Sie suchen möchten. Dies kann ein Bereich sein, der Dateinamen und Kachelnamen enthält.
- die Zeilennummer des Ergebnisses ist die Zeilennummer, in die das Suchergebnis eingefügt werden soll.
- eine ungefähre Übereinstimmung ist ein boolescher Wert, der angibt, ob die Suche ungefähre Übereinstimmung sein soll. Wenn der Wert TRUE ist, wird die Suche mit einer ungefähren Übereinstimmung ausgeführt. Wenn der Wert FALSE ist, wird die Suche mit einer genauen Übereinstimmung durchgeführt.
Wenn Sie beispielsweise eine Liste von Dateien und Blattnamen im Bereich A1:B5 haben und sich der Dateiname, nach dem Sie den Blattnamen suchen möchten, in Zelle D1 befindet, lautet die Formel wie folgt:
=PROHLOOKUP(D1, A1:B5, 2, FALSE)
Ein Makro kann eine einfachere Möglichkeit sein, eine Suche nach einem Arbeitsblattnamen nach einem Dateinamen in Excel durchzuführen. Hier ist ein Beispielmakro:
Sub FindSheetName()Dim FileName As StringDim SheetName As String' Получаем имя файла из ячейки D1FileName = ThisWorkbook.Sheets("Sheet1").Range("D1").Value' Ищем имя листа по имени файлаFor Each Sheet In ThisWorkbook.SheetsIf InStr(UCase(Sheet.Name), UCase(FileName)) > 0 ThenSheetName = Sheet.NameExit ForEnd IfNext' Выводим результат в ячейку E1ThisWorkbook.Sheets("Sheet1").Range("E1").Value = SheetNameEnd Sub
Um dieses Makro zu verwenden, müssen Sie es dem VBA-Modul in Excel hinzufügen. Sie können dieses Makro dann aufrufen, indem Sie ALT + F8 drücken und das Makro "FindSheetName" auswählen. Das Suchergebnis wird in Zelle E1 angezeigt.
| Quelldatei | Dateiname | Name des Blatts | |
|---|---|---|---|
| Datei1.xlsx | Datei1 | Blatt1 | Blatt1 |
| Datei1 | Blatt2 | ||
| Datei2 | Blatt1 | ||
| Datei2.xlsx | Datei2 | Blatt1 | Blatt2 |
| Datei1 | Blatt2 | ||
| Datei2 | Blatt2 |
Im obigen Beispiel lautet das Ergebnis der Suche "Tabellenname 2", da dies der einzige Tabellenname ist, der den Dateinamen aus Zelle D1 enthält.