Wie kann ich mit vba prüfen, ob ein blatt vorhanden ist?

Wenn Sie ein Blatt erstellen, löschen, verschieben oder kopieren möchten, müssen Sie wissen, ob dieses Blatt existiert oder nicht.

Um Code zu schreiben, der überprüft, ob das Blatt vorhanden ist oder nicht, benötigen Sie eine Schleife, die jedes Blatt in der Arbeitsmappe durchläuft und mit dem von Ihnen angegebenen Namen übereinstimmt. Aber hier ist die Sache: Sie können dafür zwei verschiedene Schleifen verwenden ( For Next und For Each ), und heute werden wir beide verwenden.

In diesem Tutorial werden wir uns verschiedene Möglichkeiten ansehen, dies zu tun. Stellen Sie also sicher, dass sich in Ihrem Menüband die Registerkarte „Entwickler“ befindet, und öffnen Sie den VBA-Editor , um diesen Code zu schreiben.

Überprüfen Sie, ob in der aktuellen Arbeitsmappe ein Blatt vorhanden ist

Mit dieser Schleife können Sie auf alle Blätter in der Arbeitsmappe verweisen und sie einzeln durchlaufen, um den Blattnamen mit dem Namen des Blattes abzugleichen, nach dem Sie suchen möchten.

Folge diesen Schritten:

  1. Deklarieren Sie zunächst eine Variable, die beim Ausführen der Schleife für das Blatt verwendet wird und den Namen des Blatts speichert, nach dem Sie suchen möchten.
    declare-a-variable-to-use-for-the-sheet
  2. Schreiben Sie als Nächstes eine Codezeile für ein Eingabefeld, um den Namen des Blattes einzugeben, nach dem Sie suchen möchten.
    line-of-code-for-an-input-box
  3. Danach beginnen Sie Ihre Schleife mit dem Schlüsselwort For Each. Und verwenden Sie die Variable , um auf jedes Arbeitsblatt in der Arbeitsmappe zu verweisen.
    start-your-loop
  4. Von hier aus müssen Sie eine IF THEN ELSE- Anweisung schreiben, um den Blattnamen mit dem Namen abzugleichen, den Sie in das Eingabefeld eingegeben haben. Anschließend müssen Sie ein Meldungsfeld anzeigen, wenn die Übereinstimmung gefunden wird, und den Vorgang beenden.
    write-an-if-then-else
  5. Am Ende erscheint ein Meldungsfeld, das Sie benachrichtigt, wenn keine Übereinstimmung gefunden wird.
    message-box-to-show

Nützliche Links: Ausführen eines MakrosMakrorecorderVisual Basic EditorHandbuch zu persönlichen Makros

Vollständiger Code:

 Sub vba_check_sheet() Dim sht As Worksheet Dim shtName As String shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") For Each sht In ThisWorkbook.Worksheets If sht.Name = shtName Then MsgBox "Yes! " & shtName & " is there in the workbook." Exit Sub End If Next sht MsgBox "No! " & shtName & "is not there in the workbook." End Sub

Lassen Sie mich erklären, wie es funktioniert: Wenn Sie diesen Code ausführen, wird eine Meldung angezeigt, in der Sie den Namen des Blatts eingeben müssen, nach dem Sie suchen möchten.

Danach durchsucht es jedes Blatt, um den Namen mit dem von Ihnen eingegebenen Namen abzugleichen. Wenn der Name mit einem Blatt übereinstimmt, wird eine Meldung angezeigt. Wenn keine Übereinstimmung vorliegt, wird eine weitere Meldung angezeigt.

Hier ist ein weiterer Code, um zu überprüfen, ob ein Blatt vorhanden ist oder nicht.

 Sub vba_check_sheet() Dim sht As Worksheet Dim shtName As String Dim i As Long i = Sheets.Count shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") For i = 1 To i If Sheets(i).Name = shtName Then MsgBox "Yes! " & shtName & " is there in the workbook." Exit Sub End If Next i MsgBox "No! " & shtName & " is not there in the workbook." End Sub

Dieser Code verwendet die FOR NEXT-Schleife und verwendet die Gesamtzahl der Blätter in der Arbeitsmappe. Auf dieser Grundlage durchläuft er jedes Blatt, das mit dem von Ihnen eingegebenen Namen übereinstimmt.

Überprüfen Sie, ob das Blatt in der geschlossenen Arbeitsmappe vorhanden ist

Im folgenden Code haben Sie eine Schleife, die in einer geschlossenen Arbeitsmappe nach dem Blattnamen sucht. Um auf die Datei zu verweisen, haben wir die Dateiadresse verwendet.

 Sub vba_check_sheet() Dim wb As Workbook Dim sht As Worksheet Dim shtName As String shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") Application.ScreenUpdating = False Set wb = Workbooks.Open _ ("C:UsersDellDesktopsample-file.xlsx") For Each sht In wb.Worksheets If sht.Name = shtName Then wb.Close SaveChanges:=True MsgBox "Yes! " & shtName & " is there in the workbook." _ , vbInformation, "Found" Exit Sub End If Next sht Application.ScreenUpdating = False MsgBox "No! " & shtName _ & " is not there in the workbook.", _ vbCritical, "Not Found" End Sub

Wenn Sie dieses Makro ausführen, wird die Datei im Hintergrund geöffnet, als Sie die Bildschirmaktualisierung deaktiviert hatten. Sobald alle Blätter durchgegangen sind, verfügen Sie über den Code zum Aktivieren der Bildschirmaktualisierung. ‚Bildschirm.

Hinweis: Wie Sie sehen können, befindet sich in der Dateispeicherortadresse die Dateierweiterung, was bedeutet, dass Sie die richtige Dateierweiterung benötigen, um darauf zu verweisen.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert