我正在尝试使用范围内的两个变量设置自动填充范围。只有一个变量时,它似乎起作用,但是当我将其设置为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)
所以这似乎是我输入另一个变量时特有的问题
感谢您的帮助!
答案 0 :(得分:0)
正如Scott Craner在回答您的问题时所说的,只是您没有正确构造地址字符串。
假设您的Start_Row
是1
,而您的End_Row
是10
。您要传递给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
函数时,这都是一个常见错误。