将动态范围设置为“向下填充”

时间:2017-11-06 20:17:24

标签: excel-vba dynamic vba excel

我很高兴在我的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?

1 个答案:

答案 0 :(得分:0)

动态查找列P(LR)的最后一行:

Dim LR as Long
LR = .Cells( .Rows.Count, "P").End(xlUp).Row

然后将最后一行减1应用于您的填充:

.Range("AD3:AF" & LR-1).FillDown