Problembeschreibung
In Microsoft Office Excel funktioniert VBA-Makrocode (Microsoft Visual Basic for Application), der "hinter" einem Arbeitsblatt oder einer Arbeitsmappe enthalten ist, möglicherweise nicht ordnungsgemäß.
Ursache
Dies tritt auf, wenn die beiden folgenden Bedingungen erfüllt sind:
-
Der betreffende Code ist in einer automatisch ausgeführten Unterroutine enthalten, z. B. einer Auto_Open oder Auto_Close-Unterroutine.
-
Der Code ist nicht in einem Visual Basic-Modul enthalten, sondern "hinter" einem Arbeitsblatt oder der Arbeitsmappe selbst.
Problemumgehung
Damit automatisch ausgeführte Unterroutinen in Microsoft Excel ordnungsgemäß funktionieren, müssen sie in einem Visual Basic-Modul enthalten sein.
Sie müssen ein Visual Basic-Modul in die Arbeitsmappe einfügen und dann den Code im neuen Modul platzieren. So fügen Sie ein Visual Basic-Modul ein:-
Aktivieren Sie im Project Explorer im Visual Basic-Editor die Arbeitsmappe, die den betreffenden Code enthält.
-
Klicken Sie im Menü Einfügen auf Modul.
Nachdem das neue Modul eingefügt wurde, schneiden Sie den Code von seiner ursprünglichen Position aus, und fügen Sie ihn in das Visual Basic-Modul ein. Speichern Sie dann die Arbeitsmappe.
Weitere Informationen
In Excel kann VBA-Code an drei verschiedenen Speicherorten gespeichert werden: in einem Visual Basic-Modul, in einem Visual Basic-Klassenmodul und "hinter" Arbeitsblättern und Arbeitsmappen.
So bearbeiten Sie Code "behind" eines Arbeitsblatts oder einer Arbeitsmappe:-
Aktivieren Sie den Visual Basic-Editor (drücken Sie ALT+F11).
-
Im Fenster Project Explorer werden Einträge wie die folgenden angezeigt:
VBAProject (Book1)
Microsoft Excel Objects
Sheet1 (Sheet1)
Sheet2 (Sheet2)
Sheet3 (Sheet3)
ThisWorkbook
Modules
Module1
Wenn Sie auf einen der Arbeitsblattnamen oder Auf ThisWorkbook doppelklicken, können Sie Code in das Codefenster eingeben. Ein solcher Code, der nicht in einem Visual Basic-Modul enthalten ist, gilt als "hinter" dem Arbeitsblatt oder
Thisworkbook. Wenn eine Auto_Open, Auto_Close oder eine andere automatisch ausgeführte Unterroutine "hinter" einem Arbeitsblatt oder ThisWorkbook gespeichert wird, funktioniert sie möglicherweise nicht ordnungsgemäß, wenn Sie die Arbeitsmappe öffnen oder schließen oder wenn Sie eine Aktion ausführen, die die Unterroutine ausführen soll.