SpecialCells и SheetSelectionChange

Программирование на Visual Basic for Applications
I10
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 14.08.2006 (Пн) 10:11

SpecialCells и SheetSelectionChange

Сообщение I10 » 16.08.2006 (Ср) 10:25

Возвращение свойства SpecialCells, например,
1. Set myR2 = mySel.SpecialCells(xlCellTypeFormulas)
2. S = mySel.SpecialCells(xlCellTypeFormulas).Address
вызывает обработчик события [Application]_SheetSelectionChange

Подскажите, есть ли возможность избежать вызова этого события?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.08.2006 (Ср) 10:29

Хм... ты тоже баг в экселе нашёл? :)
А какой excel?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

I10
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 14.08.2006 (Пн) 10:11

Сообщение I10 » 16.08.2006 (Ср) 10:34

2003
баг?
Может быть Excel что-то делает с выделением при вызове SpecialCells?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.08.2006 (Ср) 10:35

Дык не должен, во всяком случае не документировано.

Но багов там правда есть.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 16.08.2006 (Ср) 10:56

Проверять неохота, но если правда, то действительно баг, и это прикольно :)

По теме - заведи глобальную переменную, перед использованием SpecialCells устанавливай ее значение в False, после использования - True, а в обработчике исполняй команды, только если эта переменная=True.
Быть... или не быть. Вот. В чём вопрос?

I10
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 14.08.2006 (Пн) 10:11

Сообщение I10 » 16.08.2006 (Ср) 11:36

Понимаю,
но это не достаточно прикольно

Gloom
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 200
Зарегистрирован: 23.11.2004 (Вт) 15:57
Откуда: СПб

Сообщение Gloom » 16.08.2006 (Ср) 12:07

Эта фишка по крайней мере с 97 ёкселя тянется. Более того - для разных значений XlCellType работает по разному (например, для xlCellTypeLastCell событие SelectionChange вызывается дважды)
Лечится просто:
Код: Выделить всё
Application.EnableEvents = False
Set myR2 = mySel.SpecialCells(xlCellTypeFormulas)
Application.EnableEvents = True

I10
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 14.08.2006 (Пн) 10:11

Сообщение I10 » 16.08.2006 (Ср) 12:21

Спасибо


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 66

    TopList