使用 VBA 计算 CountIf 公式

问题描述 投票:0回答:1

我有一个包含协议编号 (RA) 的电子表格,但有时会出现重复的 RA 编号,因为有第二张发票(不是唯一的)。 我需要确定何时有第二张发票并在 RA 编号前添加连续的数字。 该公式在范围 D2 中输入的电子表格中完全执行此操作

=IF(E2=1,"1","" & COUNTIF(E2:E118,E2) & E2)

然后往下填充。 这为我创建了一个独特的“RA”号码,正是我所需要的。

现在我尝试在 VBA 子程序中输入相同的公式。 我已经尝试了以下方法,但出现了子或函数未定义错误:

Range("D2") = WorksheetFunction.CountIf(Range("E2") = 1, "1", "" & CountIf(Range("E2:E" & vRow), Range("E2") & Range("E2")))

这是我需要帮助的代码部分:

vRow = Cells(Rows.Count, 1).End(xlUp).Row
    
'Enter formula for unique invoice
Range("D2") = WorksheetFunction.CountIf(Range("E2") = 1, "1", "" & CountIfs(Range("E2:E" & vRow), Range("E2") & Range("E2")))
'Range("D2").formula = "=IF(E2=1,"1","" & COUNTIF(E2:E118,E2) & E2)"
Application.Calculation = xlAutomatic
Range("D2").FillDown

关于如何让 VBA 公式发挥作用有什么想法吗? 感谢您的帮助。

excel vba excel-formula formula countif
1个回答
0
投票

试试这个

Range("D2") = IIf(Range("E2") = 1, "1", "" & WorksheetFunction.CountIf(Range("E2:E" & vrow), Range("E2")) & Range("E2"))
  • Excel WorksheetFunction没有If可以使用IIf

请参阅 VBA 公式 如果:WorksheetFunction、公式或 R1C1?

  • 如果只定义一个条件,也可以使用CountIf。
  • 必须为 CountIf 定义 WorksheetFunction 类。 IIf 是一个 VBA 函数。

如果您想以编程方式放置公式,请参阅我的评论。

© www.soinside.com 2019 - 2024. All rights reserved.