toNk
Цитата:
Попробовал сделать так: [more=Далее]Создаю книгу1, сохраняю, создаю книгу2, сохраняю. В книге1 на листе1 создаю кнопку. Щёлкаю по ней (в режиме конструктора), создаётся макрос в листе1 книги1. Пишу код в нем. Далее копирую мышкой весь лист1 из книги1 в книгу2. Лист скопировался с кнопкой и макросом, привязанным к листу. При просмотре свойств кнопка связана с кодом в книге2 на листе "Лист1 (2)" (копия листа1 книги1).[/more]
Возможно вы привязываете макрос, созданный вне листа, в котором у вас кнопка, например, в каком-либо модуле или в "ЭтаКнига". Тогда при копировании вполне резонно предположить, что копия кнопки будет ссылаться на старый макрос. В моём примере макрос привязан к листу, и при копировании листа целиком он переходит вместе с кнопкой.
Добавлено:
Если у вас будет много документов, то чтобы не править основной код во всех документах (во время отладки и/или модификации программы) советую вам в макросе, вставленный в лист (тот, что непосредственно вызывается при нажатии кнопки) вставить переадресацию на макрос, находящийся в вашем Addin'е, в котором и будет располагаться основной код программы. В этом случае вам необходимо будет править код в одном файле, а не во всех, что его используют.
Цитата:
В книге есть объект (кнопка), на которую завязан макрос из этой книги. При копировании в другую книгу (где есть такой же макрос), на кнопке остается ссылка на макрос в первой книге....
Попробовал сделать так: [more=Далее]Создаю книгу1, сохраняю, создаю книгу2, сохраняю. В книге1 на листе1 создаю кнопку. Щёлкаю по ней (в режиме конструктора), создаётся макрос в листе1 книги1. Пишу код в нем. Далее копирую мышкой весь лист1 из книги1 в книгу2. Лист скопировался с кнопкой и макросом, привязанным к листу. При просмотре свойств кнопка связана с кодом в книге2 на листе "Лист1 (2)" (копия листа1 книги1).[/more]
Возможно вы привязываете макрос, созданный вне листа, в котором у вас кнопка, например, в каком-либо модуле или в "ЭтаКнига". Тогда при копировании вполне резонно предположить, что копия кнопки будет ссылаться на старый макрос. В моём примере макрос привязан к листу, и при копировании листа целиком он переходит вместе с кнопкой.
Добавлено:
Если у вас будет много документов, то чтобы не править основной код во всех документах (во время отладки и/или модификации программы) советую вам в макросе, вставленный в лист (тот, что непосредственно вызывается при нажатии кнопки) вставить переадресацию на макрос, находящийся в вашем Addin'е, в котором и будет располагаться основной код программы. В этом случае вам необходимо будет править код в одном файле, а не во всех, что его используют.