对于我正在编写的代码,我监视某些单元格范围的变化以运行函数和私有(private)子程序。为此,我在 worksheet_change 子中使用了 Intersect 函数。

但是,相交“测试”的触发器始终是我“移出”我正在测试的单元格,以确定它是通过鼠标单击进入不同的单元格还是通过光标移动。

我需要的是一种定义变量的方法,该变量包含我之前选择的单元格的 .address

我尝试了下面的代码,但我得到的只是错误。

有没有人知道如何做到这一点?

Public xfrLastCell As String
Public xfrActiveCell As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If xfrActiveCell = "" Then xfrActiveCell = ActiveCell.Address
xfrLastCell = xfrActiveCell
xfrActiveCell = ActiveCell
MsgBox xfrLastCell

End Sub

最佳答案

下面的代码对我有用 - 您对 activecell 的分配缺少地址,这意味着 activecell 变量始终为空

Option Explicit

Public xfrLastCell As String
Public xfrActiveCell As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If xfrActiveCell = "" Then xfrActiveCell = ActiveCell.Address
xfrLastCell = xfrActiveCell
xfrActiveCell = ActiveCell.Address
MsgBox xfrLastCell

End Sub

关于excel - 以前活跃的细胞,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19179756/

10-12 14:18