Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Перенос макроса в новую книгу - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Перенос макроса в новую книгу
Гость Дата: Среда, 16.05.2012, 01:39 | Сообщение № 1
Группа: Гости
Добрый день.
Проблема такая. Из книги, каждый лист которой содержит несколько кнопок и макросы их обслуживающие, необходимо программным образом копировать некоторые из листов в новую книгу. Однако после копировния, макросы ссылаются не на новую книку, а на ту, из которой их скопировали (хотя внутри содержится свой такой же.
Вопрос: Как этого избежать? как (программно) разорвать связи.
Такая же проблема есть если копировать листы содержащие формулы, ссылающиеся на диапазоны соседних листов. например формула из книги A.xls =ВПР(Лист1!А1;В1:В15;1;1=2) в новой книге, после копирования листа превратится в ВПР([c:\a.xls]Лист1!А1;В1:В15;1;1=2). Я ее обхожу так: пишу формулу =ВПР( ДВССЫЛ("Лист1!А1");В1:В15;1;1=2) которая переносится без изменений. Но с макросами привязанными к кнопкам так не получается.
 
Ответить
СообщениеДобрый день.
Проблема такая. Из книги, каждый лист которой содержит несколько кнопок и макросы их обслуживающие, необходимо программным образом копировать некоторые из листов в новую книгу. Однако после копировния, макросы ссылаются не на новую книку, а на ту, из которой их скопировали (хотя внутри содержится свой такой же.
Вопрос: Как этого избежать? как (программно) разорвать связи.
Такая же проблема есть если копировать листы содержащие формулы, ссылающиеся на диапазоны соседних листов. например формула из книги A.xls =ВПР(Лист1!А1;В1:В15;1;1=2) в новой книге, после копирования листа превратится в ВПР([c:\a.xls]Лист1!А1;В1:В15;1;1=2). Я ее обхожу так: пишу формулу =ВПР( ДВССЫЛ("Лист1!А1");В1:В15;1;1=2) которая переносится без изменений. Но с макросами привязанными к кнопкам так не получается.

Автор - Гость
Дата добавления - 16.05.2012 в 01:39
Serge_007 Дата: Среда, 16.05.2012, 09:06 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
C формулами просто: в исходнике жмёте Ctrl+H, найти =, заменить на ё, копируете формулы в новую книгу и в ней производите обратную замену ё на =


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеC формулами просто: в исходнике жмёте Ctrl+H, найти =, заменить на ё, копируете формулы в новую книгу и в ней производите обратную замену ё на =

Автор - Serge_007
Дата добавления - 16.05.2012 в 09:06
Гость Дата: Среда, 16.05.2012, 09:29 | Сообщение № 3
Группа: Гости
Quote (Serge_007)
C формулами просто: в исходнике жмёте Ctrl+H, найти =, заменить на ё, копируете формулы в новую книгу и в ней производите обратную замену ё на =

я не до конца объяснил. Копирую листы в новую книгу не я, а другая прграмма, делающая на один из листов выгрузку из базы данных, а остальные листы дополняются из моего файла. В результате получается книга с выгрузкой из базы и листы с отчетами обрабатывающими выгруженные данные. Поэтому предложенный способ увы не работающий (для меня).
 
Ответить
Сообщение
Quote (Serge_007)
C формулами просто: в исходнике жмёте Ctrl+H, найти =, заменить на ё, копируете формулы в новую книгу и в ней производите обратную замену ё на =

я не до конца объяснил. Копирую листы в новую книгу не я, а другая прграмма, делающая на один из листов выгрузку из базы данных, а остальные листы дополняются из моего файла. В результате получается книга с выгрузкой из базы и листы с отчетами обрабатывающими выгруженные данные. Поэтому предложенный способ увы не работающий (для меня).

Автор - Гость
Дата добавления - 16.05.2012 в 09:29
_Boroda_ Дата: Среда, 16.05.2012, 09:30 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16715
Репутация: 6504 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Quote (Гость)
Из книги, каждый лист которой содержит несколько кнопок и макросы их обслуживающие, необходимо программным образом копировать некоторые из листов в новую книгу.


Если именно в НОВУЮ книгу, то проще всего сделать копию ВСЕЙ исходной книги, а потом поудалять то, что не нужно. Так и ссылки сохранятся, и макросы.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Quote (Гость)
Из книги, каждый лист которой содержит несколько кнопок и макросы их обслуживающие, необходимо программным образом копировать некоторые из листов в новую книгу.


Если именно в НОВУЮ книгу, то проще всего сделать копию ВСЕЙ исходной книги, а потом поудалять то, что не нужно. Так и ссылки сохранятся, и макросы.

Автор - _Boroda_
Дата добавления - 16.05.2012 в 09:30
Гость Дата: Среда, 16.05.2012, 12:03 | Сообщение № 5
Группа: Гости
Quote (_Boroda_)
Если именно в НОВУЮ книгу, то проще всего сделать копию ВСЕЙ исходной книги, а потом поудалять то, что не нужно. Так и ссылки сохранятся, и макросы.

Повторюсь еще раз. Сервис по копированию осуществляется сторонней программой. Она - программа - сама эти действия по копированию осуществляет. Я предоставляю только файл из которого она берет листы в качестве дополнения к созданной ей самой выгрузке. Новую книгу создает она НЕ для меня, а для юзера, который запросил выгрузку из базы. И он (юзер) конечно не будет ничего удалять.
В общем обстоятельства такие. Я не могу ничего диктовать разработчикам программы обслуживающей базу, могу только приспосабливаться. Необходимо добиться, чтобы мой лист, перенесенный в другую книгу работал автономно. Те необходимо разорвать связь с книгой источником
 
Ответить
Сообщение
Quote (_Boroda_)
Если именно в НОВУЮ книгу, то проще всего сделать копию ВСЕЙ исходной книги, а потом поудалять то, что не нужно. Так и ссылки сохранятся, и макросы.

Повторюсь еще раз. Сервис по копированию осуществляется сторонней программой. Она - программа - сама эти действия по копированию осуществляет. Я предоставляю только файл из которого она берет листы в качестве дополнения к созданной ей самой выгрузке. Новую книгу создает она НЕ для меня, а для юзера, который запросил выгрузку из базы. И он (юзер) конечно не будет ничего удалять.
В общем обстоятельства такие. Я не могу ничего диктовать разработчикам программы обслуживающей базу, могу только приспосабливаться. Необходимо добиться, чтобы мой лист, перенесенный в другую книгу работал автономно. Те необходимо разорвать связь с книгой источником

Автор - Гость
Дата добавления - 16.05.2012 в 12:03
_Boroda_ Дата: Среда, 16.05.2012, 12:38 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16715
Репутация: 6504 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Quote (Гость)
Повторюсь еще раз.

Прежде, чем повторяться - посмотрите на время наших постов. 9:29 и 9:30. Мы параллельно писали.
У меня тоже на работе есть такие программы (именно во множественном числе). И приспособился я очень просто - я не свои листы копирую в лист выгрузки, а наоборот, данные из листа выгрузки копирую в свои, уже заранее настроенные, файлы в заранее созданный лист. Причем, все формулы и макросы уже настроены и остается только вставить новые данные и посмотреть на полученный результат.
И, кстати, все наши, даже самые "деревянные" пользователи прекрасно освоили эту простую последовательность - выделил, скопировал, вставил. Согласитесь, намного проще, чем копировать листы и бороться со связями.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Quote (Гость)
Повторюсь еще раз.

Прежде, чем повторяться - посмотрите на время наших постов. 9:29 и 9:30. Мы параллельно писали.
У меня тоже на работе есть такие программы (именно во множественном числе). И приспособился я очень просто - я не свои листы копирую в лист выгрузки, а наоборот, данные из листа выгрузки копирую в свои, уже заранее настроенные, файлы в заранее созданный лист. Причем, все формулы и макросы уже настроены и остается только вставить новые данные и посмотреть на полученный результат.
И, кстати, все наши, даже самые "деревянные" пользователи прекрасно освоили эту простую последовательность - выделил, скопировал, вставил. Согласитесь, намного проще, чем копировать листы и бороться со связями.

Автор - _Boroda_
Дата добавления - 16.05.2012 в 12:38
Саня Дата: Среда, 16.05.2012, 12:39 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
переделай все контролы в ActiveX, а макросы, соответственно, в "Исходный текст" этого листа
и лист инкапсулирует все свои элементы управления со всеми потрохами...
 
Ответить
Сообщениепеределай все контролы в ActiveX, а макросы, соответственно, в "Исходный текст" этого листа
и лист инкапсулирует все свои элементы управления со всеми потрохами...

Автор - Саня
Дата добавления - 16.05.2012 в 12:39
Гость Дата: Среда, 16.05.2012, 14:39 | Сообщение № 8
Группа: Гости
Quote (Саня)
переделай все контролы в ActiveX, а макросы, соответственно, в "Исходный текст" этого листа
и лист инкапсулирует все свои элементы управления со всеми потрохами...

Интересный вариант. Попробую.
 
Ответить
Сообщение
Quote (Саня)
переделай все контролы в ActiveX, а макросы, соответственно, в "Исходный текст" этого листа
и лист инкапсулирует все свои элементы управления со всеми потрохами...

Интересный вариант. Попробую.

Автор - Гость
Дата добавления - 16.05.2012 в 14:39
Гость Дата: Среда, 16.05.2012, 14:49 | Сообщение № 9
Группа: Гости
Quote (Гость)
Интересный вариант. Попробую.


Отлично, то что доктор прописал. И не надо обучать юзеров, менять технологию.
Огромное спасибо Саня.
Тема закрыта
 
Ответить
Сообщение
Quote (Гость)
Интересный вариант. Попробую.


Отлично, то что доктор прописал. И не надо обучать юзеров, менять технологию.
Огромное спасибо Саня.
Тема закрыта

Автор - Гость
Дата добавления - 16.05.2012 в 14:49
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!