我很高兴在我的excel工作簿中使用VBA。
我遇到了@Manhattan提供的以下代码作为另一个问题的答案。它非常适合我的工作簿需求,但我需要帮助设置一个动态范围。
我现在正在努力做的是,让代码只填充足够的行以匹配P列中的行(这是下表代码从中提取数据的数据透视表的行标签列),除了最后一行(总是" Grand Totals")?
Sub FillDown()
Dim strFormulas(1 To 3) As Variant
With ThisWorkbook.ActiveSheet
strFormulas(1) = "=SUM($Q3:$S3)"
strFormulas(2) = "=iferror(index(q3:s3,match($AE$2,$Q$2:$S$2,0)),0)"
strFormulas(3) = "=$AD3-$AE3"
.Range("AD3:AF3").Formula = strFormulas
.Range("AD3:AF150").FillDown
End With
End Sub
TL; DR:我怎样才能使这段代码只填充足够的行以匹配P列中的最后一行-1?
答案 0 :(得分:0)
动态查找列P(LR)的最后一行:
Dim LR as Long
LR = .Cells( .Rows.Count, "P").End(xlUp).Row
然后将最后一行减1应用于您的填充:
.Range("AD3:AF" & LR-1).FillDown