VBA CountIf使用R1C1和文本

时间:2014-07-08 20:00:44

标签: vba excel-vba excel-formula countif excel

我正在尝试让公式显示列“C”(RC3)的前一行的数量或出现次数。

理想的结果如下:

数:3

如果前一行中出现3次值。

以下代码返回“False”。

y.FormulaR1C1 = "Count: " + "=Application.WorksheetFunction.CountIf(range(R3C3:R" & LR & "C3), " = "&R[-1]C3)"

y是一个单元格

LR是最后一行

谢谢,如果我能进一步澄清,请告诉我。

2 个答案:

答案 0 :(得分:0)

如果您正在尝试制作一个结合了TEXT和内置函数的公式,请使用=CONCATENATE()。考虑以下示例:

sameple data

如果您要使用VBA填写相对位置(.FormulaR1C1)的公式,那么它将是:

=CONCATENATE("Count: ",COUNTIF(R[-5]C:R[-2]C,"=" &R[-1]C))

答案 1 :(得分:0)

CountIf函数永远不会计算任何东西,只要它在测试字符串中。而且你不需要' Application.WorksheetFunction'在单元格公式中(仅当您要在VBA中完全使用该函数时)。此外,您不需要Excel公式中的范围功能。试试这个:

y.FormulaR1C1 = "=""Count: ""&CountIf(R3C3:R" & LR & "C3,R[-1]C3)"

虽然如果您的搜索范围和标准单元格之间没有任何内容,您可以完全取消LR:

y.FormulaR1C1 = "=""Count: ""&CountIf(R3C3:R[-2]C3,R[-1]C3)"