У нас есть рабочая книга с поддержкой макросов (версия 2010), которую используют многие люди. У некоторых из этих людей есть макросы в рабочей книге Personal.xlsb. У нас есть ситуация, когда макрос в общей рабочей книге называется так же, как макрос в личных рабочих книгах, но выполняет немного другие действия.
Чтобы избежать запуска неправильного макроса, я хотел бы настроить общую книгу по умолчанию для запуска макросов из этой книги вместо всех открытых книг. Я ожидаю поместить что-то в WorkBook_Open()
, но что?
Есть ли способ изменить параметр по умолчанию для макросов в: All Open Workbooks
на This Workbook
?
решение1
Можете ли вы просто переименовать макрос в общей рабочей книге и заменить экземпляры этого макроса в этой конкретной рабочей книге?
решение2
Если я переименую модули, содержащие подпрограммы, я смогу точно указать, какую подпрограмму вызывать.
Пример:
В 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
, я теперь могу указать, какую одноименную подпрограмму следует выполнить.