使用R1C1自动填充范围

时间:2013-11-02 17:09:48

标签: excel vba

我正在尝试使用R1C1引用在Excel VBA中使用动态范围自动填充公式。

而不是使用这样的东西:

Sheets("my_sheet").Range("A2").AutoFill Destination:=Range("A2:A:"&row_count), Type:=xlFillDefault

我写了以下内容:

Sheets("my_sheet").Cells(2, 17).AutoFill Destination:=Sheets("my_sheet").Range(Cells(3, 17), Cells(row_count, 17)), Type:=xlFillDefault

这似乎不起作用,并返回以下内容:

Run-time error '1004':
AutoFill method of Range class failed.

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

MSDN documentation“目的地必须包含来源范围。”第二个等式的问题实际上是目标地址在行下方开始而不是自动填充参考。您引用第2行,但目标从第3行开始。将3更改为2,它将起作用。


你的第二个等式很好,但它不等于第一个等式。

如果您的第一个等式有效,您可以直接替换它:

Sheets("my_sheet").Cells(2, 1).AutoFill Destination:=Sheets("my_sheet").Range(Cells(2, 1), Cells(row_count, 1)), Type:=xlFillDefault

顺便说一句 - 在A2:A:

之后,你的第一个等式有一个额外的':'

它应该是这样的:

Sheets("my_sheet").Range("A2").AutoFill Destination:=Range("A2:A" & row_count), Type:=xlFillDefault