如何解决使用 vba 更改计数范围
我想使用 vba 更改 counfif 公式中的范围。通过单击按钮,范围 A3:A3 更改为 A3:A4,然后再次单击按钮 A3:A4 更改为 A3:A5,依此类推...我设法创建了一个常量 vba 公式,但我不知道如何进行。有人吗? :)
解决方法
我认为您需要一个虚拟单元格/值来实现,虚拟单元格将“计算”您单击按钮的次数。我的解决方案需要一个虚拟单元格。
Sub Countif_function()
Dim start_value As Long
start_value = Cells(1,"D").Value 'Take the value from cell D1
If start_value <= 3 Or Cells(1,"D").Value = "" Then start_value = 3 ' If the value is less than 3 (since you start at row 3) or if the value is empty then set the minimum start value to 3 (otherwise countif will fail).
Cells(3,"D").Value = Application.WorksheetFunction.countif(Range(Cells(3,"A"),Cells(start_value,"A")),"A") 'Using the inbuild function in VBA to retrieve the countif
Cells(3,"E").Value = "=COUNTIF(A3:A" & start_value & ",""A"")" 'Just for view purpose of the final formula result,can be ignored in the code
Cells(1,"D").Value = Cells(1,"D").Value + 1 'Add +1 row. This will be used as the start value for next time the code is executed.
End Sub
我使用“A”作为标准,因为您在示例代码中使用了它,但可以更改为“C3”或其他一些单元格。
结果:
,如果您不想按照上一个答案计算虚拟单元格,另一种方法是通过 range.formula 将单元格中的公式读入字符串变量,将其拆分为逗号,读取最后一位数字拆分数组中的第一个条目,加1。(如果数字是9,则检查前面的字符是数字还是字母,如果是字母,则使9成为10,如果是数字,则将其加一并使9 a 0,如果前面的字符也是 9,递归调用)。所以,是的,除非您真的无法拥有虚拟单元,否则使用该解决方案会更容易。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。