这是我第一次在这里发帖。这是我的问题。我输入了一个自定义函数来计算彩色单元格的数量。
Function COUNTIFCOLOUR(Colour As Range, rng As Range) As Long
Application.Volatile
Dim NoCells As Long
Dim CellColour As Long
Dim rngCell As Range
CellColour = Colour.Interior.Color
For Each rngCell In rng
If rngCell.Interior.Color = CellColour Then
NoCells = NoCells + 1
End If
Next
COUNTIFCOLOUR = NoCells
End Function
到目前为止一切顺利。为了在进行更改时自动计算,我使用了这个代码。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Calculate
End Sub
问题是,使用 ActiveSheet.Calculate 代码后,Excel 不允许我粘贴复制的内容,尽管我可以通过剪贴板进行粘贴。如果我删除 ActiveSheet.Calculate 代码,一切都会恢复正常,这意味着我可以按 Ctrl+C 和 Ctrl+V(或使用鼠标复制、粘贴)。
有人能帮我吗?请记住,我不知道如何编写代码。我在网上找到了所有现成的东西。我正在使用 Microsoft Office 2019。
答案1
没问题!
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
ActiveSheet.Calculate
Application.EnableEvents = True
End Sub
如果您的电子表格运行缓慢,并且进行了大量不必要的计算,请尝试:
ActiveSheet.Cells(1, 1).Calculate