在Target.Address之前检查ActiveCell
如果在单击“A2”之前ActiveCell为“A1”,我希望if子句为真。 它没有连接一个按钮或任何东西。它必须通过点击“A2”来工作。 这是我尝试我做:在Target.Address之前检查ActiveCell
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address(0, 0) = "A2" And ActiveCell.Cells(0, 0) = "A1" Then
MsgBox ("test")
End If
End Sub
是否有人有办法解决吗?
回答:
我想你在这里使用了错误的方法。
如果使用SelectionChange
事件,则表示所选单元格已更改。每次调用事件时都必须存储最后一个单元格的地址。为了做到这一点,请在将ActiveCell
作为lastCellAddress进行存储之前先将您的条件妥善保存。
这里是注释代码,以帮助您了解:
'Declare the variable out of the event Dim lastCellAddress As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Check if the last selected cell was A1 when selecting A2
If (ActiveCell.Address = "$A$2" And lastCellAddress = "$A$1") Then
'If the condition is true display your MsgBox
MsgBox ("test")
End If
'Set the current address as the last selected for next selection change
lastCellAddress = ActiveCell.Address
End Sub
以上是 在Target.Address之前检查ActiveCell 的全部内容, 来源链接: utcz.com/qa/257978.html