在不同的工作表中启动来自activex控件的过滤数据的副本

我有问题复制和移动过滤的数据到一个新的工作表进一步评估。 目标是使用sheet1上的activex文本框和命令button来过滤sheet2(Data)上的数据,并将结果复制到sheet3(Calculation)中。 这是我正在使用的代码:

Private Sub CommandButton1_Click() Sheets("Data").Range("C2").Value = TextBox1.Text Worksheets("Data").Select ActiveSheet.ListObjects("Table1").Range.AutoFilter _ field:=21, Criteria1:="=*" & TextBox1.Text & "*" Range("Table1[[#Headers],[Comp Date]]").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets("Calculation").Select ActiveSheet.Paste End Sub 

当我在sheet1的模块上运行此代码时,我收到对象“_Worksheet”失败“错误消息的”方法范围“。 但是,如果我把与复制和粘贴任务有关的代码放到由第二个命令button启动的sheet2模块中,它就可以正常工作。 我想完成这两个filter,并复制和粘贴,如果可能的话按下一个button。 任何人都可以提供任何帮助,我要去哪里错了?

根据你的意见,试试这个:

 Private Sub CommandButton1_Click() Dim lo As ListObject With Sheets("Data") .Range("C2").Value = TextBox1.Text Set lo = .ListObjects("Table1") End With With lo .Range.AutoFilter field:=21, Criteria1:="=*" & TextBox1.Text & "*" .Range.SpecialCells(xlCellTypeVisible).Copy End With Sheets("Calculation").Paste End Sub