使用R1C1自动填充范围

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

而不是使用这样的东西:

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. 

有什么build议么?

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


你的第二个方程是好的,但它不等同于第一个方程。

如果你的第一个方程的作品,你可以直接用它replace它:

 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