【1】xlS.[a1] 改为 xlS.Range("A1")
【2】
Activesheet,这时是你 新建的 Sheet,不是你有数据的Sheet,
可以先激活你有数据的Sheet,
如:Workbooks("你有数据的工作表名").Worksheets(1).Active 然后再Copy
或者在新建一个Workbook之前,如果 有数据的Workbooks中的SHeet是当前激活的 SHeet,则可以先将它赋值给变量。 dim AS =New Worksheet
set AS=Activesheet
然后再建立新的工作表,Copy时用:
AS.Range("A2:F20").SpecialCells(xlCellTypeVisible).Copy xlS.Range("A1")
是不是第4行"WORKSHEETS"要改为"sheets“
建议你录个宏看看就知道了