我知道这个问题已经问了好几次,并且反应良好,但是我仍然无法解决这个问题。 找到一列的最后一行后(假设该列中没有空白值),我想在公式中使用lastrow变量
以下方法工作正常,可以将公式复制到最后一行
LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row ' obtains the last row value
Worksheets("Test").Range("i2:i" & LastRow).Formula = "=SUMPRODUCT(--
($B$2:$B$189<=B2)*(B2<=$D$2:$D$189))"
我需要做的是使用串联的lastrow变量 公式中的$ B $ 189和$ D $ 189引用
我尝试了以下但没有成功;
Worksheets("Test").Range("i2:i" & LastRow).Formula = "=SUMPRODUCT(--
(""$B$2:$B$"" & LastRow<=B2)*(B2<=""$D$2:$D$"" & LastRow))"
答案 0 :(得分:1)
您在公式中的引号和连接有一些问题。
尝试
"=SUMPRODUCT(--($B$2:$B$" & LastRow & "<=B2)*(B2<=$D$2:$D$" & LastRow & "))"
答案 1 :(得分:1)
您必须更加小心自己的地址和公式。似乎您正在尝试用公式填充列I
,因此您应该计算列H
(第8列)-LastRow = .Cells(.Rows.Count, 8).End(xlUp).Row
中的行。如果不确定如何使用VBA输入公式,请尝试使用Record Macro
函数将其记录下来,并检查代码中的想法。下面的代码应该可以帮助您完成任务:
Dim LastRow As Double
With Worksheets("Test")
LastRow = .Cells(.Rows.Count, 8).End(xlUp).Row
.Range("i2:i" & LastRow).Formula = "=SUMPRODUCT(-- ($B$2:$B$" & LastRow & "<=B2)*(B2<=$D$2:$D$" & LastRow & "))"
End With