6

Excel シートがあり、A2、B2、および C2 にデータを入力しています。Enterキーを押した後、カーソルで次の行を選択して、A3、B3、C3などの情報を入力できるようにします

こんな情報見つけました

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Range("C2").Value <> "" Then
Range("A3").Select
End If
End Sub

しかし、それは一度しか機能しません。このプロセスを何度も繰り返すにはどうすればよいですか

ご協力いただきありがとうございます.....

4

3 に答える 3

6

別の方法。

  1. 列 A の任意の場所に入力すると、選択範囲が列 B に移動します。
  2. 列 B の任意の場所に入力すると、選択範囲が列 C に移動します。
  3. 列 C の任意の場所に入力すると、選択範囲が列 A (次の行) に戻ります。

Code : これは、関連するシート コード領域に入ります。

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Whoa

    Application.EnableEvents = False

    If Not Target.Cells.CountLarge > 1 Then
        If Not Intersect(Target, Columns(1)) Is Nothing Then
            Target.Offset(, 1).Select
        ElseIf Not Intersect(Target, Columns(2)) Is Nothing Then
            Target.Offset(, 1).Select
        ElseIf Not Intersect(Target, Columns(3)) Is Nothing Then
            Target.Offset(1, -2).Select
        End If
    End If
Letscontinue:
    Application.EnableEvents = True
    Exit Sub
Whoa:
    MsgBox Err.Description
    Resume Letscontinue
End Sub

スクリーンショット

ここに画像の説明を入力

于 2013-04-11T16:08:02.013 に答える
1

VBA を関与させる必要がある場合は、方向とステータスをそれぞれ設定するプロパティがあります。

Application.MoveAfterReturnDirection = xlToRight 
Application.MoveAfterReturn = True
于 2013-04-11T15:21:46.070 に答える