当我按下按钮时,我有一系列要运行到自动填充工作表的宏。
第一个调用的宏将自动填充列到该表中特定列的范围,它运行得非常好。其余的工作表应填充到第100行,第2行中的任何内容都应该填充。
当逐个运行时运行良好但是当我按下按钮一起运行它们时,所有宏都只应用于Sheet1。而不是我指定的床单。
此外,如果所有这些都是DownFilled而不是自动填充会更好,因为当我自动填充它们时我们需要重复这些数字而不是增量。
Private Sub CommandButton1_Click()
Fill_It_Down1
Fill_It_Down2
Fill_It_Down3
End Sub
这些是我写过的宏。
Sub Fill_It_Down1()
Dim source As Worksheet
Set source = Sheets("Sheet1")
Range("D2:ZZ2").AutoFill destination:=Range("D2:ZZ" & Range("B" & Rows.Count).End(xlUp).Row)
End Sub
Sub Fill_It_Down2()
Dim source As Worksheet
Set source = Sheets("Sheet2")
Range("C2:ZZ2").AutoFill destination:=Range("C2:ZZ2" & 100)
End Sub
Sub Fill_It_Down3()
Dim source As Worksheet
Set source = Sheets("Sheet3")
Range("A2:ZZ2").AutoFill destination:=Range("A2:ZZ2" & 100)
End Sub
答案 0 :(得分:2)
您需要确保使用工作表对象验证所有Range
次来电:
Sub Fill_It_Down1()
With Sheets("Sheet1")
.Range("D2:ZZ2").AutoFill destination:= _
.Range("D2:ZZ" & .Range("B" & .Rows.Count).End(xlUp).Row)
End with
End Sub
答案 1 :(得分:2)
Range
是工作表的属性,因此如果您的代码位于Sheet模块中,则需要显式引用目标工作表:
Sub Fill_It_Down1()
Dim source As Worksheet
Set source = Sheets("Sheet1")
With source
.Range("D2:ZZ2").AutoFill Destination:=.Range("D2:ZZ" & .Range("B" & .Rows.Count).End(xlUp).Row)
End With
End Sub
Sub Fill_It_Down2()
Dim source As Worksheet
Set source = Sheets("Sheet2")
source.Range("C2:ZZ2").AutoFill Destination:=source.Range("C2:ZZ2" & 100)
End Sub
Sub Fill_It_Down3()
Dim source As Worksheet
Set source = Sheets("Sheet3")
source.Range("A2:ZZ2").AutoFill Destination:=source.Range("A2:ZZ2" & 100)
End Sub