VBA 使用 countif 变量使用两个不同的结果

VBA USING TWO DIFFERENT RESULT USING countif VARIABLE

晚上好 我在 VBA 上有问题我有一个变量 countif

Dim Y As Integer
Y = Application.WorksheetFunction.CountIf(Worksheets("Calc_Giac").Range("I11:EZ11"), ">0")

所以如果我在公式中使用变量

Range("B21").Formula = "=SumIF((I11:EZ11), "">0"") / (" & Y & ")"

值正确

但如果在条件中使用,结果是变量*-1

If ("(" & Y & ")" > 0) Then
Range("L19") = "(" & Y & ")"
Else
Range("L19") = "HELLO"
End If

有什么想法吗?

首先:你有一个奇怪的 if 条件。假设 Y 的值 3 作为 CountIf 的结果:"(" & Y & ")" 解析为 String "(3)"。之后,您检查 string "(3)" 是否大于 0。这没有意义。尝试

If Y > 0 then

第二:您将字符串 "(3)" 写入单元格。现在取决于单元格的格式设置,或者您在单元格中有 "(3)"(作为字符串)(当单元格被格式化为文本时),或者 Excel 尝试转换字符串 "(3)"成一个数字。但是,Excel 中用括号输入的数字被解释为负数(通过手动在单元格中输入“(3”) 来尝试。使用:

Range("L19").Value = 3

然而,在公式 =SumIF((I11:EZ11), "">0"") / (3) 中,(3) 只是计算的一部分,括号告诉 Excel 在继续计算之前先计算括号内的任何内容。由于 3 已经求值,因此无需执行任何操作,因此括号将被忽略。