|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
09.01.2009, 11:28 | #1 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 17
|
Почему не работает Selection.Delete?
Народ! Объясните мне, темному , почему такая простая конструкция у меня не работает?
Код:
При этом, при выходе из функции на листе оказываются выделенными все графические элементы, функция нормально завершается с выдачей идентификатора завершения (в ячейке вызова функции возвращается значение "1"), но Selection.Delete не срабатывает. Почему так? В чем ошибка? |
09.01.2009, 12:13 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
у Shapes нет метода Delete. у Shape - есть. Пробуйте так:
For Each shp In ThisWorkbook.Worksheets("1").Shapes shp.Delete Next
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
16.01.2009, 12:04 | #3 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 17
|
Спасибо за ответ.
Так то работает, но мне надо несколько иное. Я это уже обсуждал в разделе "Программная группировка графики", но в предложенном мне решении работало все, кроме удаления и мне там так и не пояснили почему. Поэтому в данном разделе я упростил вопрос. Видимо зря. Привожу полный фрагмент. Есть функция, которая рисует графику (по входным параметрам) и должна удалить ранее нарисованные ею объекты (не все, а именно данные объекты). Реализация создания массива имен рисованных объктов для удаления уже выяснена. Надо просто по этим данным удалить данные объекты. Ну чтобы упростить - давайте сразу в одном проходе (без передачи параметров в функцию), а просто - рисуем, запоминаем имена и сразу все это и удаляем. НО ТОЛЬКО ЭТО, А НЕ ВСЮ ГРАФИКУ ЛИСТА. Например где то так (только надо не SelectAll, а именно что то типа Select.Name - хоть это наверное и не правильный оператор, но как иначе не знаю): Код:
Почему же тогда мой макрорекордер при ручном рисовании-удалении создает такой код: Код:
Последний раз редактировалось Andru2008; 16.01.2009 в 12:17. |
16.01.2009, 12:07 | #4 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 17
|
|
16.01.2009, 12:32 | #5 | ||
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Цитата:
Цитата:
Лучше день потерять — потом за пять минут долететь!©
|
||
16.01.2009, 12:38 | #6 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Если вы знаете как отличить подлежащие удалению обьекты от остальных - добавьте проверку на наличие необходимого признака:
For Each shp In ThisWorkbook.Worksheets("1").Shapes if shp ... then shp.Delete Next
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
16.01.2009, 13:05 | #7 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 17
|
Спасибо всем. Разобрался - все работает. Я сделал так:
Код:
Ну например вместо Код:
Код:
Хотя если нельзя без перебора, то и так как получилось меня тоже устраивает. Еще раз всем спасибо. |
16.01.2009, 13:09 | #8 | |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Цитата:
Код:
Лучше день потерять — потом за пять минут долететь!©
|
|
16.01.2009, 13:16 | #9 | |
Пользователь
Регистрация: 23.12.2008
Сообщений: 17
|
Цитата:
Код:
Последний раз редактировалось Andru2008; 16.01.2009 в 13:18. |
|
16.01.2009, 13:42 | #10 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Вот так работает.
Функция возвращает последнюю созданную фигуру. А дальше делай с ней, что хочешь. Только без извращений
Код:
Лучше день потерять — потом за пять минут долететь!©
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
почему не работает | domovoi | Общие вопросы Delphi | 1 | 15.10.2008 18:42 |
Почему не работает цикл????? | Marsik | Помощь студентам | 2 | 22.06.2008 14:16 |
Breakpoints напритив delete[] не работает - Visual C++ v8.00 | Игорь007 | Помощь студентам | 9 | 03.06.2008 00:50 |
Почему не работает код? | Kashp | Общие вопросы Delphi | 3 | 09.08.2007 17:33 |