自动填充运行时错误1004 - 自动填充动态范围

时间:2015-02-02 10:21:01

标签: excel vba

我正在尝试根据用户输入自动填充(xlFillFormats)动态范围。

代码是:

    If iInputRows > 1 Then
    Rows(14).Resize(iInputRows, Columns.Count).EntireRow.Insert _
      Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("D13").Resize(iInputRows, 1).DataSeries Rowcol:=xlColumns, _
      Type:=xlLinear, Step:=1
    Range("X13:AR13").Resize(iInputRows, 21).FillDown
    Rows(13 + iInputRows).Delete
    Range("O13:U13").Resize(iInputRows, 7).AutoFill Destination:=Range("O13:U" & iInputRows), Type:=xlFillFormats

End If

从技术上讲,已插入的所有行应具有与其对应的源单元格相同的格式。但是,特定范围O:U(由用户输入决定的行数)决定排除单元格格式 我在上面代码的第8行中难以纠正这个问题,我得到了运行时错误。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

你的错误就在这里

Destination:=Range("O13:U" & iInputRows)

您忘记了偏移目标范围的行,它应该是这样的:

Destination:=Range("O13:U" & 13 + iInputRows)

编辑:

另外,如果您只想复制第一行的格式并且应该删除,则.Resize(iInputRows, 7)是不必要的。