我正在尝试根据用户输入自动填充(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行中难以纠正这个问题,我得到了运行时错误。
有什么建议吗?
答案 0 :(得分:1)
你的错误就在这里
Destination:=Range("O13:U" & iInputRows)
您忘记了偏移目标范围的行,它应该是这样的:
Destination:=Range("O13:U" & 13 + iInputRows)
编辑:
另外,如果您只想复制第一行的格式并且应该删除,则.Resize(iInputRows, 7)
是不必要的。