多个工作表自动填充错误1004

我想创build一个button,在多个工作表中进行自动填充。 但似乎我只能自动填充一张表…这是代码:

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 

那简单。 如果我把它分解成两个不同的button,它们工作得很好。 我试过Worksheets()。激活 ,但它没有帮助。 (大多数人不推荐激活反正)也尝试写Sub,但同样的问题仍然存在“错误1004”。

您已经遇到了一个常见的编码错误,其中Range对象中的Range.Cells属性没有明确定义它们的父类。

 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语句可以使父级工作表的分配变得容易很多,而不会混淆正在尝试完成的任务。

它工作时,我添加激活:

 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))