2 / 2 / 1
Регистрация: 16.06.2013
Сообщений: 33
|
|||||||||||
1 | |||||||||||
Удаление объекта Shapes15.04.2018, 09:32. Показов 4363. Ответов 9
Метки нет (Все метки)
У меня такая ситуация. Есть лист с таблицей. На этом листе есть кнопка, которая запускает макрос. В Ходе выполнения макроса я делаю копию этого листа. Если лист есть, то его удаляю и создаю заново.
0
|
15.04.2018, 09:32 | |
Ответы с готовыми решениями:
9
"работа с выделением Selection объекта word.Bookmarks и .shapes через excel" Удаление объектов из списка и удаление самого объекта Удаление объекта удаление объекта |
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
|
|
15.04.2018, 16:53 | 2 |
Paxani4, ну совершенно мутный код. Где находится макрос CopySheet? Не на том же листе, которй удаляете? Что находится в ShName и ShName1? Если удаляете лист с макросом, то макрос надо ставить в модуль, а не в лист. А лучше обойтись без миниатюр, а прислать файл. А может просто переместить нужную страницу на последнее место?
0
|
2 / 2 / 1
Регистрация: 16.06.2013
Сообщений: 33
|
||||||
15.04.2018, 18:28 [ТС] | 3 | |||||
Burk, CopySheet находится в модуле. ShName имя нового листа, ShName1 имя листа, который копирую. В листе ShName1 есть код
запуска макроса. Его я убрать не могу.
0
|
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
|
|
16.04.2018, 00:13 | 4 |
а при чём тут Macros?
Добавлено через 1 минуту Sub CopySheet(ShName As String, ShName1 As String)
0
|
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
|
|
16.04.2018, 07:11 | 5 |
Сообщение было отмечено Paxani4 как решение
Решение
Paxani4, т.к. ваш файл по каким-то причинам вы выслать не можете, то пришлось делать свой, которй нормально работает и кнопку убирает без проблем. Практически это копия вашего кода. Если вы ещё не разобрались со своим, то придется всё-таки выставить его на форуме.
1
|
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
|
|
16.04.2018, 11:33 | 6 |
Paxani4, вы, конечно, знаете, что после добавления листа он становится активным.
Добавлено через 1 час 18 минут Paxani4, вот что ещё забыл - на быстрых компах при создании новых листов система не успевает полностью создать/скопировать лист, а уже идет новая комада (переименование) для этого листа. У меня старый комп. Поэтому после копирования вашего листа, перед переименованием поставьте оператор DoEvents, не исключено, что у вас всё заработает. Ошибка вроде и намекает на это. Этот оператор ничему не навредит.
0
|
2 / 2 / 1
Регистрация: 16.06.2013
Сообщений: 33
|
|||||||||||
17.04.2018, 11:36 [ТС] | 7 | ||||||||||
Суть вы поняли верно. Логика работы в моем файле именно такая, как в вашем примере.... На самом деле я не до конца разобрался в природе ошибки... она возникает в пошаговой отладке, после строчки
Добавлено через 5 минут Macros Это основная программа, в ней вызывается Sub CopySheet(ShName As String, ShName1 As String). Программа большая поэтому не стал ее всю выкладывать, хотел только конкретный момент уточнить с объектом IShape.
0
|
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
|
||||||
17.04.2018, 13:48 | 8 | |||||
Paxani4,
у меня в моём примере всё работает нормально, иначе я бы его не послал. А про DoEvents из моего последнего сообщения вы не забыли? Поставьте этот оператор после удаления страницы и после копирования перед переименованием листа. За пошаговую отладку не знаю, никогда не пользовался. На моём компе и так работает. А в моём примере что говорит и в каком месте?
Добавлено через 15 минут Paxani4, а замените в моём файле саб без ивентов на следующий
0
|
2 / 2 / 1
Регистрация: 16.06.2013
Сообщений: 33
|
|
17.04.2018, 14:12 [ТС] | 9 |
Ваш пример работает c/ без DoEvents, если не ставить брэкпоинты и не отслеживать ход работы программы. Вот скрин. Запустил с брэкпоинтом. Я без отладки писать не могу, не такой профи )
0
|
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
|
|
17.04.2018, 16:01 | 10 |
Paxani4, я то думал, что в обычном запуске не идёт моя программа, а оказывается это при запуске через отладчик! Тут я вам пока посоветовать могу только одно - поставьте в нужных вам местах вывод через MsgBox. Какой-то конфликт отладчика с чем-то. Если вы напишете подробно мне, что врубаете при отладке (брэкпойнты ....), то могу попробовать аналогично сделать у себя. Но не исключено, что знающая отладчик публика вам поможет, когда стало ясно где проблема.
Добавлено через 10 минут Paxani4, сейчас запустил у себя с несколькими брэкпойнтами через кнопку, всё прошло без фокусов
0
|
17.04.2018, 16:01 | |
17.04.2018, 16:01 | |
Помогаю со студенческими работами здесь
10
Удаление объекта ef 6.0 Удаление объекта Удаление объекта Удаление объекта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |