У нас есть книга с макросами (версия 2010), которую используют многие люди. У некоторых из этих людей есть макросы в их книге Personal.xlsb. У нас есть ситуация, когда макрос в общей рабочей книге называется так же, как макрос в личных книгах, но выполняет несколько разные вещи.

Чтобы избежать запуска неправильного макроса, я бы хотел, чтобы по умолчанию общая рабочая книга запускала макросы из этой рабочей книги вместо всех открытых рабочих книг. Я ожидаю что-то поместить в WorkBook_Open() , но что?

Есть ли способ изменить параметр по умолчанию для макросов в: All Open Workbooks на This Workbook?

2 ответа2

0

Если я переименую модули, которые содержат подпрограммы, я могу точно указать, какая подпрограмма вызывать.

Пример:
В Modlue1, переименован в LocalModule1, у меня есть:

Sub TestDupe()
    Call LocalModule1.DuplicateName
End Sub

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

В Module2, переименован в LocalModule2, у меня есть

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

Изменяя квалификатор в вызове с LocalModule1 на LocalModule2 , я теперь могу определять, какую подпрограмму с тем же именем выполнять.

0

Не могли бы вы, ребята, просто переименовать макрос в общей рабочей книге и заменить экземпляры этого макроса в этой конкретной книге?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .