自动填充超过1行,否则不适用

时间:2016-03-23 10:08:27

标签: excel vba macros

如果ROW计数超过1,应用自动填充的最佳方法是什么? 我使用下面的行,它正在工作。但是,如果某个实例中“I”列中只有1个ROW,则会出现错误。

Sheets(1).Range("J2").AutoFill Destination:=Range("J2:J" & Cells(Rows.Count, "I").End(xlUp).Row)

2 个答案:

答案 0 :(得分:0)

您需要明确引用所有Range.ParentRange objectRange.Cells properties工作表属性。您不能依赖ActiveSheet property的隐式引用。

with Sheets(1)
    .Range("J2").AutoFill Destination:=.Range("J2:J" & .Cells(Rows.Count, "I").End(xlUp).Row)
end with

您可能会发现Range.FillDown method更容易编码。

with Sheets(1)
    .Range("J2:J" & .Cells(Rows.Count, "I").End(xlUp).Row).FillDown
end with

With ... End With statement将父工作表引用传递给具有前缀句点(又名句号.Range)的所有.Cells.

答案 1 :(得分:0)

我使用了复制和粘贴方法来执行自动填充功能。 您可以根据您的要求使用特殊粘贴作为值或公式。这是进行自动填充的另一种方式

Sub test11()
Dim L As Long

L = Sheets(1).Range("J1:J" & Sheets(1).Cells(Sheets(1).Rows.Count, "J").End(xlUp).Row).Count

   With Sheets("Sheet1")

       .Range("J1").Copy

        ' Change Range as per your requirement and paste function as per your requirement

        .Range("J2:J" & L).PasteSpecial xlValues

    End With


End Sub