Wie kann ich Makros standardmäßig so einrichten, dass sie in dieser Arbeitsmappe und NICHT in allen geöffneten Arbeitsmappen ausgeführt werden?

Wie kann ich Makros standardmäßig so einrichten, dass sie in dieser Arbeitsmappe und NICHT in allen geöffneten Arbeitsmappen ausgeführt werden?

Wir haben eine Arbeitsmappe mit Makros (Version 2010), die viele Leute verwenden. Einige dieser Leute haben Makros in ihrer Arbeitsmappe Personal.xlsb. Wir haben eine Situation, in der das Makro in der freigegebenen Arbeitsmappe denselben Namen hat wie ein Makro in persönlichen Arbeitsmappen, aber leicht unterschiedliche Dinge tut.

Um die Ausführung des falschen Makros zu vermeiden, möchte ich die freigegebene Arbeitsmappe standardmäßig so einrichten, dass Makros aus dieser Arbeitsmappe und nicht aus allen geöffneten Arbeitsmappen ausgeführt werden. Ich gehe davon aus, etwas darin zu platzieren WorkBook_Open(), aber was?

Gibt es eine Möglichkeit, die Standardoption für Makros in: All Open Workbooksin zu ändern This Workbook?

Antwort1

Könnt ihr das Makro in der freigegebenen Arbeitsmappe einfach umbenennen und die Instanzen dieses Makros in dieser bestimmten Arbeitsmappe ersetzen?

Antwort2

Wenn ich die Module umbenenne, die die Unterprogramme enthalten, kann ich genau angeben, welches Unterprogramm aufgerufen werden soll.

Beispiel:
In Modul1, umbenannt in LocalModule1, habe ich:

Sub TestDupe()
    Call LocalModule1.DuplicateName
End Sub

Public Sub DuplicateName()
    ActiveSheet.UsedRange
    MsgBox ("new mod 1")
End Sub

In Module2, umbenannt in LocalModule2, habe ich

Public Sub DuplicateName()
      ActiveSheet.UsedRange
      MsgBox ("mod 2")
End Sub

Indem ich den Qualifizierer im Aufruf von LocalModule1in ändere LocalModule2, kann ich jetzt bestimmen, welche gleichnamige Subroutine ausgeführt werden soll.

verwandte Informationen