在输入值之后选择特定单元格在先前单元格中

时间:2018-05-03 08:18:44

标签: excel vba excel-vba cell selection

所以我有一个输入表,并希望在输入/选择数据后将激活的单元格移动到另一个单元格。 到目前为止,我有这个:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Range("F11").Value <> "" Then
Range("F13").Select

End If
End Sub

但问题是由于某些原因,这似乎不适用于更多的细胞和范围。因此,例如,如果选择F13,我想转到F16。如果选择了F16,我想转到F17。所以这里没有规则总是像2行一样。我该如何解决这个问题?

最佳

1 个答案:

答案 0 :(得分:0)

这是一种简单类型的样板,可以根据特定的业务逻辑进一步增加。

如果您要添加包含3行的Range("D5"),请在此行中将其添加到联盟:If Intersect(Target, Union(Range("F16"), Range("F13"))),然后创建Case Range("D5")

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Row > Rows.Count - 2 Then Exit Sub
    If Target = vbNullString Then Exit Sub        
    If Intersect(Target, Union(Range("F16"), Range("F13"))) Is Nothing Then Exit Sub

    Select Case Target
        Case Range("F16")
            Target.Offset(1).Select
        Case Range("F13")
            Target.Offset(2).Select
    End Select

End Sub