Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA (часть 2)

Модерирует : ShIvADeSt

ShIvADeSt (11-01-2010 10:17): http://forum.ru-board.com/topic.cgi?forum=33&topic=10903  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

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
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA (часть 2)
ShIvADeSt (11-01-2010 10:17): http://forum.ru-board.com/topic.cgi?forum=33&topic=10903


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru