自动填充2个范围内的变量

时间:2020-08-28 20:21:38

标签: excel vba

我正在尝试使用范围内的两个变量设置自动填充范围。只有一个变量时,它似乎起作用,但是当我将其设置为2个变量时,它似乎不起作用。

Dim Start Row As Integer
Dim End_Row As Integer
Start_Row = Cells(Rows.Count, 4).End(xlUp).Row
End_Row = Cells(Rows.Count, 1).End(x1Up).Row
Range("D" & Start_Row).Select
Application.CutCopyMode = False
Selection.AutoFill Destination:= Range("D" & Start_Row : "D" & End_Row)

我得到的错误是:

编译错误:预期:列表分隔符或

但是,当我将代码设置为:

Selection.AutoFill Destination:= Range("D:D" & End_Row)

所以这似乎是我输入另一个变量时特有的问题

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

正如Scott Craner在回答您的问题时所说的,只是您没有正确构造地址字符串。

假设您的Start_Row1,而您的End_Row10。您要传递给Range函数的是:"D1:D10"

要使冒号包含在发送给Range属性的字符串中,您需要将其构建为:

"D" & Start_Row & ":D" & End_Row

因此,您的最终代码段如下所示:

Dim Start Row As Integer
Dim End_Row As Integer
Start_Row = Cells(Rows.Count, 4).End(xlUp).Row
End_Row = Cells(Rows.Count, 1).End(x1Up).Row
Range("D" & Start_Row).Select
Application.CutCopyMode = False
Selection.AutoFill Destination:= Range("D" & Start_Row ":D" & End_Row)

在VBA中引用Excel中的范围以及在Excel本身中使用Indirect函数时,这都是一个常见错误。