VBA的EXCEL绝对引用时想用公式怎么处理
在很多公式中需要绝对引用单元格
比如SUMPRODUCT((Other!$B$2:$B$110="A")*(Other!$C$2:$C$110="B"))
由于不能确定另一个表的非空行数
我在A1单元格中使用公式COUNT(Other!A:A)进行了统计
现在如何将A1单元格中的数值换入上个公式中的$110处呢?
Dim sRow As String
Range("A1").Select
ActiveCell.Formula = "=COUNT(Other!A:A)"
sRow = ActiveCell.Value
Range("B1").Select
ActiveCell.Formula = "=SUMPRODUCT((Other!$B$2:$B$" & sRow & "=""A"")*(Other!$C$2:$C$" & sRow & "=""B""))"
$B$110 是固定的格式,没有 $B$(...) 这种格式。
除非你有这样的函数 Range("B",110)。
先修正一下上面的那个公式:
=SUMPRODUCT((Other!$B$2:$B$110="A")*Other!$C$2:$C$110)
使用公式:
=CONCATENATE("=SUMPRODUCT((Other!$B$2:$B$" & INDEX(A1,1) & "='A')*Other!$C$2:$C$" & INDEX(A1,1) & ")")
单元格显示内容为:
=SUMPRODUCT((Other!$B$2:$B$110="A")*Other!$C$2:$C$110)
但只是一行文本
实在不行将 Other 工作表复制一份,去掉标题行,隐藏,供统计用。
又:既然数据行数不确定,说明数据是动态生成的,可以在生成时给 Formula 赋值吧?