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
已经求值,因此无需执行任何操作,因此括号将被忽略。
晚上好 我在 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
已经求值,因此无需执行任何操作,因此括号将被忽略。