Ein Excel-Makro, um festzustellen, ob eine Arbeitsmappe geöffnet ist

Ein Excel-Makro, um festzustellen, ob eine Arbeitsmappe geöffnet ist

Bedenken Sie beim automatischen Öffnen von Excel-Arbeitsmappen, was passieren kann, wenn Sie versuchen, ein bereits geöffnetes Buch zu öffnen. In der Nicht-VBA-Welt versucht Excel, die Datei erneut zu öffnen, wobei die Warnmeldung angezeigt wird, dass alle nicht gespeicherten Änderungen verloren gehen. Sie können sich vor einem solchen Ereignis schützen, indem Sie prüfen, ob eine bestimmte Datei bereits geöffnet ist, bevor Sie versuchen, sie erneut zu öffnen.

Ein Excel-Makro, um festzustellen, ob eine Arbeitsmappe geöffnet ist

Vermeiden Sie diese Warnmeldung.

So funktioniert das Makro

Das erste, was bei diesem Makro auffällt, ist, dass es sich um eine Funktion und nicht um eine Sub-Prozedur handelt. Wie Sie sehen werden, können Sie dieses Makro zu einer Funktion machen, um ihm einen beliebigen Dateinamen zu übergeben, um zu testen, ob diese Datei bereits geöffnet ist.

Der Kern dieses Codes ist einfach. Sie testen einen bestimmten Dateinamen, um zu sehen, ob er einer Object-Variablen zugewiesen werden kann. Nur geöffnete Arbeitsmappen können einer Objektvariablen zugewiesen werden. Wenn Sie versuchen, der Variablen eine geschlossene Arbeitsmappe zuzuweisen, tritt ein Fehler auf.

Wenn die angegebene Arbeitsmappe zugewiesen werden kann, ist die Arbeitsmappe geöffnet; Tritt ein Fehler auf, wird die Arbeitsmappe geschlossen.

Funktion FileIsOpenTest(TargetWorkbook As String) As Boolean
'Schritt 1: Deklarieren Sie Ihre Variablen
    Dim TestBook als Arbeitsbuch
'Schritt 2: Excel anweisen, bei einem Fehler fortzufahren
    Bei Fehler Fortsetzen als nächstes
'Schritt 3: Versuchen Sie, die Zielarbeitsmappe TestBook zuzuweisen
    Set TestBook = Workbooks(TargetWorkbook)
'Schritt 4: Wenn kein Fehler aufgetreten ist, ist die Arbeitsmappe bereits geöffnet
    Wenn Err.Number = 0 Dann
    FileIsOpenTest = True
    Anders
    FileIsOpenTest = False
    Ende Wenn
Endfunktion

Als erstes deklariert das Makro eine String-Variable, die den vom Benutzer gewählten Dateinamen enthält. TestBook ist der Name Ihrer String-Variablen.

In Schritt 2 teilen Sie Excel mit, dass beim Ausführen dieses Codes möglicherweise ein Fehler aufgetreten ist, und setzen Sie den Code im Fehlerfall fort. Ohne diese Zeile würde der Code einfach anhalten, wenn ein Fehler auftritt. Auch hier testen Sie einen gegebenen Dateinamen, um zu sehen, ob er einer Object-Variablen zugewiesen werden kann. Wenn die angegebene Arbeitsmappe zugewiesen werden kann, ist sie geöffnet; Wenn ein Fehler auftritt, wird es geschlossen.

In Schritt 3 versuchen Sie, die angegebene Arbeitsmappe der TestBook-Objektvariablen zuzuweisen. Die Arbeitsmappe, die Sie zuweisen möchten, ist eine String-Variable namens TargetWorkbook. TargetWorkbook wird in den Funktionsdeklarationen an die Funktion übergeben (siehe die erste Zeile des Codes). Durch diese Struktur entfällt die Notwendigkeit, einen Arbeitsmappennamen fest zu codieren, sodass Sie ihn stattdessen als Variable übergeben können.

In Schritt 4 prüfen Sie einfach, ob ein Fehler aufgetreten ist. Wenn kein Fehler aufgetreten ist, ist die Arbeitsmappe geöffnet, sodass Sie FileIsOpenTest auf True setzen. Wenn ein Fehler aufgetreten ist, ist die Arbeitsmappe nicht geöffnet und Sie legen FileIsOpenTest auf False fest.

Auch hier kann diese Funktion verwendet werden, um jede Datei auszuwerten, die Sie über ihr TargetWorkbook-Argument an sie übergeben. Das ist das Schöne daran, das Makro in eine Funktion zu packen.

Das folgende Makro veranschaulicht, wie diese Funktion implementiert wird. Hier rufen Sie die neue Funktion FileIsOpenTest auf, um sicherzustellen, dass der Benutzer eine bereits geöffnete Datei nicht öffnen kann:

Untermakro1()

'Schritt 1: Definiere eine String-Variable

    Dim FName als Variante

    Dim FNFileOnly As String

'Schritt 2: GetOpenFilename-Methode aktiviert Dialogfeld

    FName = Application.GetOpenFilename(_

            FileFilter:="Excel-Arbeitsmappen,*.xl*", _

            Title:="Wählen Sie eine Arbeitsmappe zum Öffnen", _

            Mehrfachauswahl:=Falsch)

'Schritt 3: Öffnen Sie die ausgewählte Datei, falls sie noch nicht geöffnet ist

    Wenn FName <> False Then

    FNFileOnly = StrReverse(Links(StrReverse(FName), _

                 InStr(StrReverse(FName), ") - 1))

Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet ist eine dynamische Arbeitsplattform, mit der Sie Projekte verwalten, Arbeitsabläufe erstellen und mit Ihrem Team zusammenarbeiten können.

SharePoint

SharePoint

SharePoint ist ein webbasiertes Kollaborationssystem, das eine Vielzahl von Workflow-Anwendungen, „Listen“-Datenbanken und anderen Webkomponenten sowie Sicherheitsfunktionen verwendet, um die Zusammenarbeit von Unternehmensgruppen zu steuern.

Ewiger Kalender 1.0.38/1.0.36

Ewiger Kalender 1.0.38/1.0.36

Van Nien Calendar ist eine Kalenderanzeigeanwendung auf Ihrem Telefon, die Ihnen hilft, schnell das Monddatum auf Ihrem Telefon zu sehen und so Ihre wichtige Arbeit zu ordnen.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook ist eine Geschäfts- und Produktivitätsanwendung, die von der Microsoft Corporation entwickelt wurde.

ClickUp

ClickUp

ClickUp ist eine der am höchsten bewerteten Produktivitätsplattformen für jedes Unternehmen. Große Unternehmen wie Google, Booking.com, San Diego Padres und Uber nutzen ClickUp, um die Produktivität am Arbeitsplatz zu steigern.

PDF-XChange Viewer 2.5.322.10

PDF-XChange Viewer 2.5.322.10

PDF ist zu einem häufig verwendeten Format zum Lesen, Erstellen und Senden von Textdokumenten geworden. Im Gegenzug hat die Zahl der für diese Art der Dokumentation eingesetzten Programme zugenommen. PDF-XChange Viewer gehört zu einer wachsenden Zahl von PDF-Viewern.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice bietet eine vollständige Suite von Office-Anwendungen, die mit Microsoft 365 konkurrieren können, insbesondere in Excel, PowerPoint und Word. Es ermöglicht Ihnen eine effektivere Verwaltung Ihrer Projekte und unterstützt mehrere Dateiformate.

Laden Sie iTaxviewer 1.8.7 herunter

Laden Sie iTaxviewer 1.8.7 herunter

Die iTaxViewer-Software ist heute die beliebteste Software zum Lesen von XML-Dateien. Bei dieser Software handelt es sich um eine Anwendung zum Lesen elektronischer Steuererklärungen im XML-Format des General Department of Taxation.

Nitro PDF Reader

Nitro PDF Reader

Nitro PDF Reader ist ein praktischer PDF-Editor, der alle grundlegenden Aufgaben abdeckt, die die meisten Menschen täglich mit PDF-Dokumenten ausführen.

Foxit Reader 12

Foxit Reader 12

Foxit Reader ist in erster Linie ein PDF-Reader und ermöglicht Ihnen außerdem, PDF-Dateien zu erstellen, sie zu signieren, zu bearbeiten und Anmerkungen hinzuzufügen. Es funktioniert auf Betriebssystemen, es gibt Plugins für verschiedene Programme aus dem Microsoft Office-Paket.