我是VBA的新手,并且继承了我目前正在更新的其他人的需求跟踪电子表格。这些需求已经与当前的VBA代码一起正确分组和总结。我想更新的特定块(例如,有多个层次):如何为几组数据动态地创建COUNTIFS公式(运行时错误'1004')
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
我试图执行宏的和更新的金额正确式之前手动输入手动在正确的细胞中的式(S)。不过,我总是得到以下,当我运行宏: 运行时错误“1004” Application_defined或object_defined错误
我知道我有很多的报价,有的也许可以合并;但是,我更关心逻辑失败的原因。能否请你帮忙?我在这个探索不同的途径上花了太多时间。
预先感谢您!
在此之后,我将不得不学习如何隐藏每个“4级”要求(这意味着行和以下2行),但这是另一个话题。我以为我会先尝试更简单的逻辑..
最简单的就是debug.print你的公式字符串a nd看看它有什么问题,无论是在即时窗口还是将其复制到工作簿中。用'''= COUNTIFS ...'开始公式,然后删除工作表中的单引号,并得到更具描述性的错误信息。 – nutsch