Stellen Sie mithilfe von VBA in Microsoft Excel fest, ob ein Blatt in einer Arbeitsmappe vorhanden ist
_ Es kann vorkommen, dass Sie überprüfen müssen, ob ein Arbeitsblatt vorhanden ist, das Sie in einer Arbeitsmappe in einem VBA-Makro / Code erstellt oder gelöscht haben. Wir können dies einfach mit einer Funktion / einem Makro tun. Es gibt mehrere Möglichkeiten, um zu überprüfen, ob ein Arbeitsblatt vorhanden ist._
In diesem Artikel werden die folgenden Möglichkeiten behandelt:
{leer} 1. Benutzerdefinierte Funktion, bekannt als UDF 2. Unterroutine über Meldungsfeld
Erste Option: Benutzerdefinierte Funktion
Der folgende Schnappschuss enthält einige Blattnamen und wir werden prüfen, ob die Namen der Blätter in Spalte A vorhanden sind.
Um festzustellen, ob ein bestimmtes Blatt vorhanden ist, müssen Sie die folgenden Schritte ausführen, um den VB-Editor zu starten. Klicken Sie auf die Registerkarte Entwickler. Wählen Sie in der Gruppe Code Visual Basic
aus * Kopieren Sie den folgenden Code in das Standardmodul
Option Explicit Function 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 = False End Function
Zur Überprüfung verwenden wir UDF in Zelle B2 als = WorksheetExists (A2)
-
In der obigen Abbildung ist „MasterSheet“ in unserer Beispielarbeitsmappe nicht vorhanden. Daher hat die Formel die Antwort False
gegeben === Code Erläuterung:
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.
Für jeden Sht in ThisWorkbook.Worksheets und Next Sht sind die Start- und Endteile der Schleife.
Dann Wenn Application.Proper (Sht.Name) = Application.Proper (Arbeitsblattname) Then _ WorksheetExists = True_ Überprüft, ob der Blattname mit dem vom Hauptmakro übergebenen Blattnamen übereinstimmt. In diesem Fall ist WorksheetExists True, und wir können die Funktion beenden. Andernfalls wird WorksheetExists = False an das Hauptmakro zurückgegeben. Die Schleife geht vom 1. zum nächsten Blatt, bis alle Blätter überprüft wurden.
SecondOption: Subroutine durch Meldungsfeld
Wir können eine normale Unterroutine haben, die eine UDF aufruft. Wenn das angegebene Blatt gefunden wird, wird im Meldungsfeld „Blatt vorhanden“ angezeigt. Wenn nicht gefunden, wird msgbox angezeigt, „Blatt nicht gefunden“.
Zur Überprüfung kopieren wir den folgenden Code in das Standardmodul:
Function 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) On Error GoTo 0 End With End Function Sub FindSheet() If WorksheetExists2("Sheet1") Then MsgBox "Sheet1 is in this workbook" Else MsgBox "Oops: Sheet does not exist" End If End Sub
Nach dem Ausführen des Makros „FindSheet“ wird das folgende Meldungsfeld angezeigt, falls ein Blatt vorhanden ist:
Wenn kein Blatt vorhanden ist, wird das folgende Meldungsfeld angezeigt:
In ähnlicher Weise können wir eine einfache IF-Schleife haben, die prüft, ob das Blatt vorhanden ist, und danach bestimmte Aktionen ausführt.
Sub test() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If ws.Name <> "Main" Then ws.Range("A1").Value = ws.Name Else ws.Range("A1").Value = "MAIN LOGIN PAGE" End If Next ws End Sub
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. Anschließend wird überprüft, ob der Arbeitsblattname nicht MAIN ist. Wenn es MAIN ist, wird Text wie „MAIN LOGIN PAGE“ in A1 dieses Blattes angezeigt, andernfalls wird der Name von angezeigt das Blatt in Zelle A1
Dies ist nur eine weitere Möglichkeit, um zu überprüfen, ob das Blatt vorhanden ist. Wenn vorhanden, führen Sie Aktion A aus, wenn nicht, Aktion B Schlussfolgerung: * Wir können feststellen, ob ein Blatt in unserer Arbeitsmappe vorhanden ist oder nicht. Wir können UDF oder Unterprogramm nach Belieben verwenden.
Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie Ihren Freunden auf Facebook mit. Sie können uns auch auf Twitter und Facebook folgen.
Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern, ergänzen oder innovieren und für Sie verbessern können. Schreiben Sie uns an [email protected]