所以我有一个输入表,并希望在输入/选择数据后将激活的单元格移动到另一个单元格。 到目前为止,我有这个:
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行一样。我该如何解决这个问题?
最佳
答案 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