2015-06-24 4 views
1

У меня есть рабочий лист с макросами и кнопками. Я хочу скопировать этот лист в другие книги, чтобы макросы могли использоваться с данными в новой книге.Перемещение листов с кодами и кнопками VBA в новую рабочую книгу

Моя проблема заключается в том, что при копировании листа в новую книгу макросы поставляются вместе с ним, но кнопка на листе по-прежнему указывает на макросы в исходной книге. Вам нужно щелкнуть правой кнопкой мыши «Assign Macro» и выбрать макрос в текущей книге.

Есть ли параметр свойства, который указывает кнопке в Excel использовать макрос в новой книге вместо старой книги?

+1

Пожалуйста, разместите полный код, который дает вам проблемы. Состояние, где находится этот код. –

ответ

0

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

Что вы можете сделать, это просто запись акта назначения макроса, например:

ActiveSheet.Shapes.Range(Array("Button 1")).Select 
Selection.OnAction = "Macro1" 

Тогда избавиться от надоедливых «выбрать» материал:

ActiveSheet.Shapes.Range(Array("Button 1")).OnAction = "Macro1" 

И у вас есть Это. Конечно, имена кнопок и макросов меняются в зависимости от вашей книги, но это будет близко к этому.

+0

Я новичок, поэтому я не следую. Где будет храниться этот макрос и как он будет активирован? –

+0

Как утверждает Санчо в своем ответе, используйте Alt + F11, чтобы открыть вашу среду IDE, где хранятся макросы. Макросы могут храниться в листах или модулях, если ваши макросы должны следовать за скопированными листами, тогда они должны находиться внутри самих листов, чтобы при копировании листов поверх макроса. Поздравляем с вашим прогрессом! Макро-редактирование - очень важный шаг в вашей «Эволюции Excel». –

0

Ваш вопрос несколько расплывчатый. Тогда я угадаю.

Вы должны:

  1. Убедитесь, что Sub s будет работать фактически содержатся в Worksheet для копирования. Нажмите Alt + F11, чтобы открыть редактор VB, и вы увидите слева Лист и другие модули.

  2. Проверьте код и убедитесь, что все ссылки на макросы не имеют префикса ни одного имени листа/книги.

Смежные вопросы