Es kann vorkommen, dass Sie überprüfen müssen, ob ein Arbeitsblatt, das Sie in einer Arbeitsmappe in einem VBA-Makro / -Code erstellt oder gelöscht haben, existiert. Wir können dies einfach mit einer Funktion / einem Makro tun. Es gibt mehrere Möglichkeiten zu überprüfen, ob ein Arbeitsblatt vorhanden ist.
Wir werden in diesem Artikel die folgenden Möglichkeiten behandeln:
1. Benutzerdefinierte Funktion, bekannt als UDF
2. Unterprogramm über Nachrichtenbox
Erste Option: Benutzerdefinierte Funktion
Der folgende Snapshot enthält einige Blattnamen und wir prüfen, ob die Namen des Blatts in Spalte A vorhanden sind.
Um herauszufinden, ob ein bestimmtes Blatt vorhanden ist, müssen wir die folgenden Schritte ausführen, um den VB-Editor zu starten
- Klicken Sie auf die Registerkarte Entwickler
- Wählen Sie aus der Gruppe Code die Option Visual Basic
- Kopieren Sie den folgenden Code in das Standardmodul
Option Explizite Funktion WorksheetExists(ByVal WorksheetName As String) As Boolean Dim Sht As Worksheet For Each Sht In ThisWorkbook.Worksheets If Application.Proper(Sht.Name) = Application.Proper(WorksheetName) Then WorksheetExists = True Exit Function End If Next Sht WorksheetExists = Falsche Endfunktion
- Um dies zu überprüfen, verwenden wir UDF in Zelle B2 als
- =Arbeitsblattexistiert(A2)
- In der obigen Abbildung ist „MasterSheet“ in unserer Beispielarbeitsmappe nicht vorhanden; daher hat die Formel die Antwort als Falsch gegeben
Code-Erklärung:
Diese Funktion übernimmt den Wert für „WorksheetName“ aus dem Makro, das andere Aktivitäten ausführt. Wenn Sie es gemäß Ihrem Code ändern müssen, können Sie dies tun.
Für jeden Sht in ThisWorkbook.Worksheets und Nächster Sht sind der Anfangs- und der Endteil der Schleife.
Dann Wenn Application.Proper(Sht.Name) = Application.Proper(WorksheetName) Then
WorksheetExists = True
Überprüft, ob der Blattname mit dem Blattnamen übereinstimmt, der vom Hauptmakro übergeben wurde. Wenn dies der Fall ist, ist WorksheetExists True, und wir können die Funktion beenden. Andernfalls wird WorksheetExists = False an das Hauptmakro zurückgegeben. Die Schleife geht vom 1. Blatt zum nächsten, bis alle Blätter geprüft sind.
Zweite Option: Unterprogramm über Nachrichtenbox
Wir können ein normales Unterprogramm haben, das eine UDF aufruft, und wenn das angegebene Blatt gefunden wird, zeigt das Meldungsfeld "Blatt vorhanden" an; wenn nicht gefunden, dann erscheint msgbox, ‘Blatt nicht gefunden’.
Zur Überprüfung kopieren wir folgenden Code in das Standardmodul:
Funktion WorksheetExists2(WorksheetName As String, optional wb As Workbook) As Boolean If wb is Nothing Then Set wb = ThisWorkbook With wb On Error Resume Next WorksheetExists2 = (.Sheets(WorksheetName).Name = WorksheetName) Bei Fehler GoTo 0 End With End Function Sub FindSheet() If WorksheetExists2("Sheet1") Then MsgBox "Sheet1 ist in dieser Arbeitsmappe" Else MsgBox "Ups: Sheet existiert nicht" End If End Sub
Nach dem Ausführen des Makros „FindSheet“ erhalten wir die folgende Meldungsbox, wenn das Blatt vorhanden ist:
Wenn Sheet nicht existiert, erhalten wir die folgende Meldungsbox:
Ebenso können wir eine einfache IF-Schleife haben, die prüft, ob das Blatt existiert und danach bestimmte Aktionen ausführt.
Sub test() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets Wenn ws.Name "Main" Then ws.Range("A1").Value = ws.Name Else ws.Range("A1").Value = " HAUPT-LOGIN-SEITE" Ende Wenn Nächstes ws Ende Unter
- Um das obige Makro zu testen, müssen wir einen Blattnamen „Main“ erstellen. Dieses Makro ist sehr einfach
- Es durchläuft jedes Arbeitsblatt in der Arbeitsmappe
- Dann prüft es, ob der Arbeitsblattname nicht MAIN ist
- Wenn es sich um MAIN handelt, wird Text wie "HAUPT-LOGIN-SEITE" in A1 dieses Blatts angezeigt, andernfalls wird der Name des Blatts in Zelle A1 angezeigt
- Dies ist nur eine weitere Möglichkeit, um zu überprüfen, ob das Blatt vorhanden ist. Falls vorhanden, führe Aktion A aus, wenn nicht, Aktion B
Abschluss: Wir können feststellen, ob ein Blatt in unserer Arbeitsmappe vorhanden ist oder nicht; Wir können UDF oder Subroutine nach Belieben verwenden.
Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie mit Ihren Freunden auf Facebook. Und Sie können uns auch auf Twitter und Facebook folgen.
Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern, ergänzen oder erneuern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site