我将大量信息导出到.csv文件,然后下载/打开以进行操作。每个导出都按顺序编号(例如export(22).csv,export(23).csv等,因此工作表也具有相同的名称/编号。
对于我打开的每个.csv文件,我想要一个宏来做一个快速过滤,计数和复制,以便我可以在操作之前保留一个完整的工作表并在第二个工作表上工作。在我的宏观中,我有:
Sub Export()
'
' Export Macro
'
'
Range("A1").Select
Selection.AutoFilter
Rows("2:2").Select
ActiveWindow.FreezePanes = True
Range("A1").Select
Selection.End(xlDown).Select
Range("A6").Select
ActiveCell.FormulaR1C1 = "=SUBTOTAL(3,R[-4]C:R[-1]C)"
Range("A7").Select
Selection.End(xlUp).Select
Selection.End(xlUp).Select
Range("A2").Select
Sheets("export (87).csv").Select
Sheets("export (87).csv").Copy After:=Sheets(1)
Range("A1").Select
End Sub
这一切都适用于导出(87).csv,但是对于下一个文件导出失败,导出(88).csv。
如何使宏选择第一张纸并复制到最后而不管纸张名称?
我尝试过使用:
Sheets("Sheet1").Select
Sheets("Sheet1").Copy After:=Sheets(1)
Sheets("Sheets1").Select
Sheets("Sheets1").Copy After:=Sheets(1)
我收到了RT错误9 和
Sheets(Sheet1).Select
Sheets(Sheet1).Copy After:=Sheets(1)
我收到RT错误13
提前感谢...
答案 0 :(得分:1)
此部分导致错误
Sheets(Sheet1).Select
Sheets(Sheet1).Copy After:=Sheets(1)
正确的语法是:
Activeworkbook.Worksheets(1).Activate
ActiveSheet.Copy After:=ActiveSheet
编辑:更改代码,使其不使用工作表的名称