无论工作表名称如何,宏都要复制工作表?

时间:2015-11-25 14:55:51

标签: excel excel-vba excel-2011 vba

我将大量信息导出到.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

提前感谢...

1 个答案:

答案 0 :(得分:1)

此部分导致错误

Sheets(Sheet1).Select
Sheets(Sheet1).Copy After:=Sheets(1)

正确的语法是:

Activeworkbook.Worksheets(1).Activate
ActiveSheet.Copy After:=ActiveSheet

编辑:更改代码,使其不使用工作表的名称