我想创建一个在多个工作表中执行自动填充的按钮。但似乎我一次只能自动填充一张表......这是代码:
Private Sub CommandButton1_Click()
Sheets("Sheet1").Range(Cells(1, 1), Cells(1, 1)).AutoFill Destination:=Sheets("Sheet1").Range(Cells(1, 1), Cells(2, 1))
Sheets("Sheet2").Range(Cells(1, 1), Cells(1, 1)).AutoFill Destination:=Sheets("Sheet2").Range(Cells(1, 1), Cells(2, 1))
End Sub
很简单。如果我把它分成两个不同的按钮,它们工作得很好。我已经尝试了工作表()。激活,但它没有帮助。 (大多数人不建议不要激活)也尝试写 Sub ,但同样的问题仍然存在,因为"错误1004"。
答案 0 :(得分:1)
您遇到了一个常见的编码错误,其中Range.Cells property内的Range object没有明确定义其父级。
Private Sub CommandButton1_Click()
With Sheets("Sheet1")
.Range(.Cells(1, 1), .Cells(1, 1)).AutoFill _
Destination:=.Range(.Cells(1, 1), .Cells(2, 1))
End With
With Sheets("Sheet2")
.Range(.Cells(1, 1), .Cells(1, 1)).AutoFill _
Destination:=.Range(.Cells(1, 1), .Cells(2, 1))
End With
End Sub
注意.Range(.Cells(1, 1), .Cells(1, 1))
而非.Range(Cells(1, 1), Cells(1, 1))
。您的原始文件试图在另一个工作表上定义包含单元格的范围。
With ... End With statement可以更轻松地分配父工作表,并且不会模糊您想要完成的任务。
答案 1 :(得分:0)
当我添加Activate:
时,它会起作用Sheets("Sheet1").Activate 'added
Sheets("Sheet1").Range(Cells(1, 1), Cells(1, 1)).AutoFill _
Destination:=Sheets("Sheet1").Range(Cells(1, 1), Cells(2, 1))
Sheets("Sheet2").Activate 'added
Sheets("Sheet2").Range(Cells(1, 1), Cells(1, 1)).AutoFill _
Destination:=Sheets("Sheet2").Range(Cells(1, 1), Cells(2, 1))