如何适应事件SelectionChange代码在事件计算工作?



下面的代码在事件SelectionChange上工作,没有任何问题。但是,如果我移动到它事件计算,这个错误出现方法'撤销'对象'_Application'失败.在Worksheet_Change上有另一个代码,但我认为这不是问题的原因。

Private Sub worksheet_SelectionChange(ByVal Target As Excel.Range)
If Target.Cells.CountLarge = 1 Then
Dim Column_A As Range
Set Column_A = ActiveSheet.Range("A3", ActiveSheet.Range("A" & ActiveSheet.Rows.count).End(xlUp))
If ActiveSheet.FilterMode = True Then
Column_A.Interior.Color = RGB(255, 0, 0)
Else  'FilterMode = False
Column_A.Interior.Color = RGB(255, 255, 255)
End If
End If
End Sub

我试图在事件计算中使用If Target.Cells.CountLarge = 1,但此错误引发对象要求一如既往,非常感谢大家的支持

在阅读你的帖子和最近的评论时,我不能确定你到底想做什么。我采取了最好的猜测方法,整理了以下内容。只有当单元格AL1的值作为计算的一部分发生变化时,它才会在计算事件中采取操作。

Option Explicit
''' Reference value register
Private mvnRefValue
''' Initialise Reference value when sheet first activated
Private Sub Worksheet_Activate()
If mvnRefValue = Empty Then mvnRefValue = Range("AL1")
End Sub

Private Sub Worksheet_Calculate()
Dim Column_A As Range
If Range("AL1") <> mvnRefValue Then

With ActiveSheet
Set Column_A = .Range("A3", .Range("A" & .Rows.Count).End(xlUp))
End With

If ActiveSheet.FilterMode = True Then
Column_A.Interior.Color = RGB(255, 0, 0)
Else  'FilterMode = False
Column_A.Interior.Color = RGB(255, 255, 255)
End If
''' Update mvnRefValue
mvnRefValue = Range("AL1")
End If
End Sub

如果您想要测试一个更复杂的变更场景,请适当地采用上面使用的概念(并且/或者更完整地解释您实际上试图做的是什么)。

相关内容

  • 没有找到相关文章

最新更新