Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

еще вопрос о блокировке ячейки

248
23 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
Вот я заполняю ячейки на листе Екселя текущими временами. Иногда более правая ячейка заполняется раньше более левой. Т.е. нек. операции над документом (окончание которых я и отмечаю в этих ячейках) у меня могут меняться местами по времени. Так вот можно ли, чтобы уже заполненная ячейка становилась бы "глухой", т.е. чтобы курсор на ней уже не останавливался. Т.е. "раз заполнена, - перескакивай на след. свободную!"?
263
24 декабря 2006 года
koltaviy
816 / / 16.12.2004
Вот:
 
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r, c As Integer
r = Target.Row
c = Target.Column
If (Len(Cells(r, c).Value) > 0) Then
    Cells(r, c + 1).Select
End If
End Sub

А еще хорошо бы учитывать в какую сторону выполняется переход и в зависимости от этого 'пропускать' ячейку(это там где 'с + 1' - нужно будет 'с - 1')..
А вообще смысл именно такой!!)
248
24 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
Да, лихо отскакивает от занятой ячейки. Только теперь такая ячейка уже не подлежит редактированию. Или как-то можно исхитриться?
263
24 декабря 2006 года
koltaviy
816 / / 16.12.2004
Ой, точно - об этом я и не подумал..
Ну тогда тебе надо обрабатывать нажатия клавиш(влево/вправо)..
Двигайся в этом направлении:
В модуле книги:
 
Код:
Private Sub Workbook_Open()
Application.OnKey "{RIGHT}", "IfMoved"
End Sub

И в пользовательском модуле:
 
Код:
Public Sub IfMoved()
'...
End Sub

При этом тебе необходимо определить, где это действие происходит - переходишь ли ты между ячейками или, к примеру, перемещаешь каретку при редактировании данных в ячейке..
В общем, пробуй!!)
280
25 декабря 2006 года
ВуД™
326 / / 04.01.2006
или вот:

 
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Value <> "" Then
  Cells(Target.Row, Target.Column + 1).Select
End If
End Sub

:D
248
25 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
Братцы. Что-то я подзапутался... То Private, то Public. И что куда помещать-то? В окне VBAProject присутствуют объекты Екселя (по чилу раб. листов + "Эта книга"). И еще есть Модули 1-3. Куда что надо написать, и что на что должно ссылаться?

Я теперь даже не могу добиться, что бы опять курсор отскакивал, как раньше (по первому предложенному варианту).
(туплю серьезно) :eek:
248
25 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
А может быть вообще снять защиту с листа и с ячеек? А курсор заставлять перескакивать по "табу" просто через уже заполненные ячейки или через ячейки, в которых "сидит" короткое тире (Alt-0150) - оно обозначает, что там данных не бывает. Так можно сделать?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог