Der folgende VBA-Code-Snippet sollte in allen geöffneten Arbeitsmappen in einer einzigen Excel-Datei (* XLSM) ausgeführt werden:Wieder mit einem VBA-Makro mit „Worksheet_Change“ Ereignis in allen geöffneten Arbeitsmappen in einer einzigen Datei
Private Sub Worksheet_Change(ByVal Target As Range)
...
End Sub
Wir möchten den Code nicht in jede Arbeitsmappe kopieren, um die Codeverdopplung zu reduzieren.
Beim Versuch, ein neues Makro über das Excel "Macro" Dialog zu schaffen, es bietet die Möglichkeit, das Makro in suchen:
- alle geöffneten Arbeitsmappe
- diese/aktuelle Arbeitsmappe
- aktuelle Datei
Bei Auswahl von (1) in Kombination mit einem Makronamen, z „Multiselect“ Excel springt in den VBA-Editor und Gerüsten eine grundlegende Methode nach dem angegebenen Namen:
Sub MultiSelect()
...
End Sub
Unsere Frage: Wie auf „Worksheet_Change“ Ereignisse innerhalb dieser Makro gewährleisten reagieren?
http://www.cpearson.com/excel/AppEvent.aspx –
Nach [link] (http://www.cpearson.com/e xcel/Events.aspx) zeigt den Abschnitt "Event Code Location", wo erwähnt wird, dass "_For Blatt (sowohl Arbeitsblatt als auch Diagrammblatt) Level-Ereignisse, die Ereignis Prozedur Code in das Sheet-Modul zu diesem Blatt_ platziert werden muss". Schließlich bedeutet das, dass es in diesem Fall keine Möglichkeit gibt, die Code-Duplizierung zu verhindern? –
Sie können den Ereignishandler in eine separate Arbeitsmappe schreiben, um ein Ereignis auf Anwendungsebene zu behandeln und dieses dann in ein Add-In zu verwandeln. Das ist eine beliebte Wahl für Menschen in Ihrer Situation. –