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')..
А вообще смысл именно такой!!)
Да, лихо отскакивает от занятой ячейки. Только теперь такая ячейка уже не подлежит редактированию. Или как-то можно исхитриться?
Ну тогда тебе надо обрабатывать нажатия клавиш(влево/вправо)..
Двигайся в этом направлении:
В модуле книги:
Код:
Private Sub Workbook_Open()
Application.OnKey "{RIGHT}", "IfMoved"
End Sub
Application.OnKey "{RIGHT}", "IfMoved"
End Sub
И в пользовательском модуле:
Код:
Public Sub IfMoved()
'...
End Sub
'...
End Sub
При этом тебе необходимо определить, где это действие происходит - переходишь ли ты между ячейками или, к примеру, перемещаешь каретку при редактировании данных в ячейке..
В общем, пробуй!!)
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Value <> "" Then
Cells(Target.Row, Target.Column + 1).Select
End If
End Sub
If Target.Value <> "" Then
Cells(Target.Row, Target.Column + 1).Select
End If
End Sub
:D
Я теперь даже не могу добиться, что бы опять курсор отскакивал, как раньше (по первому предложенному варианту).
(туплю серьезно) :eek:
А может быть вообще снять защиту с листа и с ячеек? А курсор заставлять перескакивать по "табу" просто через уже заполненные ячейки или через ячейки, в которых "сидит" короткое тире (Alt-0150) - оно обозначает, что там данных не бывает. Так можно сделать?