亲爱的, 我正在尝试使用值/公式自动填充列中的单元格范围。 主要目的是让宏适用于每月行数不同的类似报告。
已经录制了一个宏,我在其中创建了一个单独的列。在第一个单元格中放置一个值。并通过双击填充句柄自动填充整列。 在宏中创建了以下字符串,其中“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
您可以尝试使用 Cells(Rows.Count,"A").End(xlUp).Row 获取最后一个非空行,然后开始粘贴
LastLine = Cells(Rows.Count,"A").End(xlUp).Row