我是 VBA 新手,并从其他人那里继承了一个需求跟踪电子表格,我目前正在更新该电子表格。需求已与当前的 VBA 代码正确分组和汇总。我尝试更新的特定块(例如,有多个级别):
For groups = 1 To i ' Level 3 grouping
Range(Cells(Start(groups), 1), Cells(Finish(groups), 1)).Rows.Group
Range("G" & Start(groups) - 1).Formula = "=COUNTIF(E" & Start(groups) & ":E" & Finish(groups) & ",""Requirement"")"
Range("H" & Start(groups) - 1).Formula = "=COUNTIF(H" & Start(groups) & ":H" & Finish(groups) & ",""Ok"")"
Next
我需要向 COUNTIF 添加一个额外的条件,所以我使用的是 COUNTIFS。我只想计算不是 4 级的要求(它们可以是 1、2、3 或 4 级)。我尝试了以下逻辑的变体:
For groups = 1 To i ' Level 3 grouping
Range(Cells(Start(groups), 1), Cells(Finish(groups), 1)).Rows.Group
Range("G" & Start(groups) - 1).Formula = "=COUNTIFS(E" & Start(groups) & ":E" & Finish(groups) & "," & "Requirement" & ",S" & Start(groups) & ":S" & Finish(groups) & ",""<>4"")"
Range("H" & Start(groups) - 1).Formula = "=COUNTIF(H" & Start(groups) & ":H" & Finish(groups) & ",""Ok"")"
Next
在执行宏之前,我尝试在正确的单元格中手动输入公式,并且公式正确更新了总和。但是,当我运行宏时,我总是得到以下信息: RunTime Error '1004' Application_defined or object_defined error
我意识到我有很多报价,有些可能可以合并;但是,我更关心逻辑为何失败。能否请你帮忙?我花了太多时间探索不同的途径。
先感谢您!
在此之后,我将不得不学习如何隐藏每个“4 级”要求(这意味着该行和以下 2 行),但这是另一个主题。我想我会先尝试更简单的逻辑..