如果在我点击“A2”之前ActiveCell为“A1”,我希望if子句为true。 它没有按钮或任何东西。只需单击“A2”即可工作。 这是我的尝试:
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
有人有解决方案吗?
答案 0 :(得分:0)
我认为你在这里使用了错误的方法。
如果您使用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