Макрос Excel, надстройка для работы с разными книгами

0

У меня проблема с моим макросом. Код работает, когда я использую его в новом макросе (я создаю новый макрос в Book1 и вставляю туда код) и активирую макрос из этой Book1.

Ситуация усложняется, когда я решил использовать надстройку (новая группа на ленте под названием «MyOwnGroup» содержит одну кнопку «MyOwnButton»). И мне очень нужен твой совет здесь.

Итак, что я пытаюсь сделать и что происходит.

1) Как это работает без надстройки. Я выбираю диапазон в Book2, нажимаю ALT + F8 и просто активирую макрос Book1. Выбранный диапазон копируется в Book1. Внутри макроса Book1 - ThisWorkBook, а Book2 - ActiveWorkBook. Я имею в виду, что макрос имеет две разные ссылки: на ThisWorkBook (где код) и ActiveWorkbook, когда я копирую диапазон.

2) С надстройкой все по-другому, потому что теперь у меня есть 3 книги:

  • Book1 (мне нужно вставить выбранный диапазон из другой книги в эту)

  • Book2 с выбранным диапазоном

  • Workbook.xlam, который содержит код моего макроса

ThisWorkBook теперь Workbook.xlam, потому что он содержит код.

ActiveWorkbook - это книга с выбранным диапазоном.

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

Например,

Я открываю Book1 (и Workbook.xlam с макросом тоже открывается), затем открываю Book2. Я выбираю диапазон в Book2, активирую Book1 и нажимаю «MyOwnButton». Выбор из Book2 (из activebook) должен быть скопирован и вставлен в Book1 (без добавления в это ThisWorkBook), но я не могу получить ссылку на Book1, потому что ThisWorkBook - это Workbook.xlam, а ActiveWorkBook - это Book2. Они уже помолвлены.

Есть ли способ получить ссылку на Book1 в этом случае?

Andre
источник
1
Вы определенно можете сказать макросу использовать «
текущую
"Есть ли способ получить ссылку на Book1 в этом случае?" - если вы открыли также book11 и book1111, как вы хотите, чтобы Excel знал, что вам нужно использовать Book1 ?? Если вы уверены, что открыли только две книги, вы можете просмотреть Application.Workbooksи использовать ту, которая не совпадает с ActiveWorkbook.
Мате Юхас
Хорошая идея использовать цикл! Но будет ли цикл обнаруживать book.xlam или нет?
Андре