excel - 计色后表现不佳

标签 excel vba excel-formula

在我的 Excel 列表中实现此代码来计算设置范围内没有颜色的填充单元格后,我遇到了性能不佳的问题:

Function CountCcolor(range_data As Range, criteria As Range) As Long
    Dim datax As Range
    Dim xcolor As Long
    xcolor = criteria.Interior.ColorIndex
    For Each datax In range_data
        If datax.Interior.ColorIndex = xcolor And Not datax.Value = vbNullString Then
           CountCcolor = CountCcolor + 1
        End If
    Next datax
End Function

我也使用这个来计算同一页面上设置范围内的黄色和红色单元格,但它不会像上面的那样降低性能:

Function Farbsumme(Bereich As Range, Farbe As Integer)
    Dim Zelle As Range
    Application.Volatile
    For Each Zelle In Bereich
        If Zelle.Interior.ColorIndex = Farbe Then
            Farbsumme = Farbsumme + 1
        End If
    Next
End Function

我是不是做错了什么?有什么我可以做得更好来提高性能吗?

最佳答案

您可能在工作表中使用其他函数,并且每次重新计算 application.volatile 都会减慢您的代码速度。

删除 application.volatile 可能会解决您的问题。

关于excel - 计色后表现不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51926148/

相关文章:

excel - 如果 y 字符串包含 a 或 b 或 c,则求和 x - Excel

excel - 将一个字符串与一列字符串进行比较并返回匹配 ID Excel

excel - VBA Word 复制表

vba - Excel VBA 中出现错误 70 的原因是什么?

excel - VBA - 返回对工作簿的引用

excel - 消除Excel中的字符

vba - VBA 中的哈希表/关联数组

vba - 对于每个循环问题

excel - 如何在执行之前调试 Excel 自动打开宏?

excel - 如何在Excel中选择最常见的数字中最高的?