自动计算与单元格属性相关的Excel VBA UDF

西蒙·穆恩

我编写了一个UDF来计算某些颜色和某些LineStyles的单元格,然后发布整个函数:

Function CountTime(rData As Range, cellRefColor As Range) As Variant    

    Dim indRefColor As Long
    Dim cellCurrent As Range
    Dim cntRes As Variant

    Application.Volatile

    cntRes = 0
    indRefColor = cellRefColor.Cells(1, 1).Interior.Color
    For Each cellCurrent In rData
        If indRefColor = cellCurrent.Interior.Color Then
            cntRes = cntRes + 1
        End If
        If cellCurrent.Borders(xlDiagonalUp).LineStyle <> xlNone Then
            cntRes = cntRes + 0.5
        End If
    Next cellCurrent

    CountTime = cntRes
End Function

现在,我遇到的问题是,当其中一个单元格rData的颜色或线条属性发生更改时,公式不会自动计算我已经添加了Application.Volatile,并且我还尝试通过一个Worksheet_Change子项触发计算,但是这不起作用,因为Excel似乎没有考虑将颜色更改为单元格/工作表的更改。

当用户更改其中的单元格的颜色或线条属性时,是否有任何方法可以使单元格自动计算和更新rData

编辑-已解决非常感谢您的理解,ChangeSelection解决方法足以满足我的目的。没想到。而且背景信息也很方便,非常感谢。

未知

我认为这是不可能的,但是一个相当公平的解决方案是当您离开一个单元或更改它时重新计算:

Private Sub Worksheet_Change(ByVal Target As Range)
    Me.Calculate
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.Calculate
End Sub

或者,可以在工作表上放置一个按钮 Me.Calculate

仅供参考:什么Me来源

Me引用代码所在的父对象。如果您在工作表模块中书写,Me则将引用该特定工作表。

使用起来Me很方便,因为我们不必担心工作表名称的更改,这也使以后的代码阅读者容易一点,因为他们不必记住“ Main UserForm”是我们当前正在使用的UserForm。 。Me如果您提供了全名,则可以对对象应用相同的方法

在中Sheet1 module,以下各行的用途相同:

Worksheets("Sheet1").Range("A1").Select
Me.Range("A1").Select

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自动计算与单元格属性相关的Excel VBA UDF

来自分类Dev

Excel VBA例程到UDF

来自分类Dev

Excel vba:是否可以在执行从该单元格调用的UDF之前访问该单元格的值?

来自分类Dev

VBA UDF函数导致excel“不响应”

来自分类Dev

在VBA中将单元格作为UDF中的参数传递的正确方法是什么?

来自分类Dev

删除不相关的单元格时需要停止UDF重新计算

来自分类Dev

Excel VBA递归获取相关单元格

来自分类Dev

VBA UDF无法调用Range.Precedents属性

来自分类Dev

VBA UDF无法调用Range.Precedents属性

来自分类Dev

Excel VBA - 确定数组 UDF 的列或行目标

来自分类Dev

Excel VBA:使用公式自动填充多个单元格

来自分类Dev

基于单元格VBA的Excel自动更改表名称

来自分类Dev

Excel VBA单元格自动前进子拆分词

来自分类Dev

Excel VBA重新计算后获取单元格值

来自分类Dev

在Excel中使用VBA计算某些单元格的数量

来自分类Dev

Excel VBA从单元格日期计算周数并显示

来自分类Dev

基于Excel VBA中单元格颜色的值计算

来自分类Dev

整个范围而不是每个单元格的Excel UDF

来自分类Dev

Excel VBA UDF 自动更正大小写错误

来自分类Dev

Excel VBA清除活动单元格

来自分类Dev

EXCEL VBA替换单元格的内容

来自分类Dev

Excel VBA:选定的单元格循环

来自分类Dev

Excel VBA重现单元格的值

来自分类Dev

Excel VBA:匹配单元格颜色

来自分类Dev

VBA:更改Excel单元格宽度

来自分类Dev

Excel VBA选择多个单元格

来自分类Dev

VBA Excel单元格值是“ not” NULL

来自分类Dev

VBA Excel中的单元格范围

来自分类Dev

VBA:更改Excel单元格宽度