我有一个包含协议编号 (RA) 的电子表格,但有时会出现重复的 RA 编号,因为有第二张发票(不是唯一的)。 我需要确定何时有第二张发票并在 RA 编号前添加连续的数字。 该公式在范围 D2 中输入的电子表格中完全执行此操作
=IF(E2=1,"1","" & COUNTIF(E2:E118,E2) & E2)
现在我尝试在 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 公式发挥作用有什么想法吗? 感谢您的帮助。
试试这个
Range("D2") = IIf(Range("E2") = 1, "1", "" & WorksheetFunction.CountIf(Range("E2:E" & vrow), Range("E2")) & Range("E2"))
请参阅 VBA 公式 如果:WorksheetFunction、公式或 R1C1?
如果您想以编程方式放置公式,请参阅我的评论。