【发布时间】:2017-06-05 13:05:22
【问题描述】:
如果不是自动计算,我的 countif 函数 - 我错过了什么吗?
Option Explicit
Function my3CountIfs(Rng1 As Range, Criteria1 As String, Rng2 As Range, Criteria2 As String, Rng3 As Range, Criteria3 As String) As Long
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Summary-Sheet", "Notes", "Results", "Instructions", "Template"
' do nothing
Case Else
my3CountIfs = my3CountIfs + Application.CountIfs(ws.Range(Rng1.Address), Criteria1, ws.Range(Rng2.Address), Criteria2)
End Select
Next ws
End Function
当我使用以下命令时,我必须手动单击它并按回车键以显示更新的答案
=my3COUNTIFS(I49,"Yes",I7,"Yes",I1, "Active")
是的,我已将 Excel 设置为自动计算。
感谢您的帮助 - 今晚在此 Excel 表上进行演示,发现它无法正常工作! - 哎呀!
【问题讨论】:
-
听说过这个
Application.Volatile...??? -
填充了该 UDF 的单元格是否会修改您传递给该 UDF 的范围内的任何值?此外,您的函数有
Rng3和Criteria3参数,但它不使用它们 -
application.Volatile 作品 - 非常感谢@cyboashu
-
干杯.........
-
UDF 永远不会重新计算,除非您为该 UDF 设置了
Application.Volatile。但是 - 如果大量使用 UDF,则不建议这样做,因为它会严重影响性能。