excel 使用值填充列中单元格的动态范围

xtfmy6hx  于 2023-03-13  发布在  其他
关注(0)|答案(1)|浏览(209)

亲爱的,我正在尝试用值/公式自动填充列中的单元格范围。主要目的是有宏,将适用于类似的报告,每月将有不同的行数。
我已经录制了一个宏,其中我创建了一个单独的列。在第一个单元格中输入一个值。并通过双击填充柄自动填充整个列。在宏中创建了以下字符串,其中“495”是测试表中最后填充的行号。Selection.AutoFill Destination:=Range("M2:M495")
但是,在这种情况下,当行数大于495时,宏将无法正常工作。为了使其更具动态性,我尝试使用以下代码:Selection.AutoFill Destination:=Range(Selection, Selection.End(xlDown))在这种情况下,宏进程与整个列,并填补它,直到最后一个单元格(1048576)。不是最好的解决方案。
你能告诉我,在宏中放什么来代替“M495”或“Selection.End(xlDown)”,以便将列填充到表中最后一行吗?
以下是宏的最新版本:

Sub Test6()

    Range("E8").Select
    ActiveSheet.ListObjects("report_2023_2_21_143341").Unlist
    Columns("M:M").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("M1").Select
    ActiveCell.FormulaR1C1 = "Count"
    Range("M2").Select
    ActiveCell.FormulaR1C1 = "=RC[-1]-1"
    Range("M2").Select
    Selection.AutoFill Destination:=Range(Selection, Selection.End(xlDown))
    Range(Selection, ActiveCell.End(xlDown)).Select
    Columns("D:D").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "Data"
    Range("D2").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]+RC[10]"
    Range("D2").Select
    Selection.AutoFill Destination:=Range(Selection, Selection.End(xlDown))
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Font.Bold = True
    Selection.NumberFormat = "dd/mm/yyyy;@"

End Sub
798qvoo8

798qvoo81#

您可以尝试使用Cells(Rows.Count,“A”).End(xlUp).Row来获取最后一个非空行,然后开始粘贴

LastLine = Cells(Rows.Count,"A").End(xlUp).Row

相关问题