【问题标题】:Select specific cell after Inputting values In previous cells在之前的单元格中输入值后选择特定单元格
【发布时间】:2018-05-03 17:03:34
【问题描述】:

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

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 行。我该如何解决这个问题?

最好的

【问题讨论】:

  • 如果没有可遵循的规则,则通过写出每个可能的事件和相应的结果来解决它。

标签: vba excel cell selection


【解决方案1】:

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

如果要添加 3 行的 Range("D5"),则将其添加到该行中的 Union: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

【讨论】:

  • 问题:由于 Target 是一个范围对象,我们不应该检查 Nothing 例如If Not Target Is Nothing Then ?
  • @KostasK。目标永远不会是空的,但它可能是空的或不止一个单元格。
  • @Jeeped 感谢您澄清这一点。
  • 谢谢!但问题是我没有一般规则,例如总是向下 2 行,但下一个单元格总是取决于前一个选定的单元格。
  • @Alex - 没有规则很难构建它。我已经编辑使它看起来有点像样板。
猜你喜欢
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-14
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多