nick7inc
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Не понял, что за ошибка. Я написал простенький пример, в котором просто сообщается диапазон выделения на события Worksheet_Change() и Worksheet_SelectionChange(). Он прекрасно работает, возможно, что у вас что-то не так с логикой программы. Вы учтите, что могут быть конфликты, если вы будете из этого макроса что-то менять в листе (см. шапку про зацикливание). Если надо что-то поменять, то обработку событий надо предварительно глушить и лучше вообще не пользоваться методом Select() (например, Range("I6").Select). Благо без него можно прекрастно обойтись. Добавлено: Цитата: а потому будет постоянное переключение настроек, когда можно, когда нельзя | По поводу переключения настроек - не понял. Проверяйте контролируемый диапазон, чтобы не отслеживать ненужное. Возможно, что вам его надо в программе задать, как статический объект типа Range, обратите внимание на Intersect(), он может вам помочь в поиске пересечения двух объектов типа Range(). Пример, который находит пересечение двух объектов типа Range() r1 и r2, создавая объект r3 в месте пересечения: Код: Sub ttt() Dim r1 As Range, r2 As Range, r3 As Range Set r1 = Range(Range("B1:C10"), Range("c7:d15")) Set r2 = Range("A8:e11") Set r3 = Intersect(r1, r2) r1.Value = "+" r2.Value = "-" r3.Value = "*" End Sub | И ещё, вы всегда можете пробежаться по всем ячейкам объекта типа Range при помощи For Each Personal_Cell in Some_range | Всего записей: 1138 | Зарегистр. 04-05-2007 | Отправлено: 23:29 15-10-2008 | Исправлено: nick7inc, 00:03 16-10-2008 |
|