【问题标题】:Compute countif in column Range & combine if with count if计算列 Range 中的 countif 并结合 if 与 count if
【发布时间】:2022-08-14 11:19:27
【问题描述】:

我有两个公式需要转移到 VBA。

在 Excel 上,我的公式是 =countif(A$2:A2,A2),所以我使用这个公式转移了它,但一切都返回到 1。行没有变成动态的,我只希望显示值。

For a = 2 To lrow
    ws.Range(\"T\" & a).Formula = \"=CountIf(A$2&\"\":\"\"&A2)\"\",\"\"&A2)\"
Next a

我在 Excel 中使用的下一个公式是

=IF(COUNTIF(A:A,A2)>Q2,\"Check\",\"Ok\")

我在 VBA 中尝试了这个公式:

For i = 2 to lrow
    If Countif(ws.Range(\"A2:A\" & lrow), \"A2\") > ws.Range(\"Q2:Q\", & lrow) Then
        ws.Range(\"T\" & i).Value = \"Check\"
    Else
        ws.Range(\"T\" & i).Value = \"Ok\"
    End If
Next i
  • ws.Range(\"T2:T\" & lrow).Formula = \"=CountIf(A$2:A2,A2)\" 不需要循环
  • ws.Range(\"S2:S\" & lrow).Formula = \"=IF(COUNTIF(A:A,A2)>Q2,\"\"Check\"\",\"\"Ok\"\")\"S 更改为您想要输出的列。

标签: excel vba


【解决方案1】:

您可以使用以下代码行使用您的第一个公式填充列 T:

ws.Range("T2:T" & lrow).FormulaR1C1 = "=COUNTIF(R2C[-19]:RC[-19],RC[-19])"

除非您澄清要在哪里写,否则我无法就您的第二个公式提供建议...

【讨论】:

  • 你好!我已经编辑过了。感谢您的反馈意见!我的 excel 仍在加载,但我希望它能正常工作。真对不起!我不知道如何正确使用这个 cmets 部分
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-10
  • 2018-07-01
  • 1970-01-01
  • 2016-08-16
  • 2011-06-19
相关资源
最近更新 更多