2013-11-02 118 views
1

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

而不是使用这样的:

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. 

有什么建议吗?

回答

2

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


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

如果你的第一个公式运作的,你可以用这个直接替换:BTW

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