复制大量的工作表并删除几张纸

时间:2014-09-01 17:28:42

标签: excel vba for-loop copy save-as

我想知道是否有人可以帮我解决这些问题。我几乎在那里但不完全。

Sub col_export_Klikken()

Dim wb As Workbook
countsheets= ThisWorkbook.Sheets.Count

Set wb  = Workbooks.Add
 For nsheets = 1 To countsheets
  ThisWorkbook.Sheets("sheetname").Copy After:=wb.Sheets(1)
 Next nsheets
ThisWorkbook.Sheets("mainuser").delete
ThisWorkbook.Sheets("maincode").delete

wb.SaveAs "C:\Users\not\Desktop\wb2.xlsx"
End Sub

此代码尚未生效。但我希望在你的帮助下我能弄清楚如何将文件保存在文件中并删除几张纸。 我面临的第一个问题是在引号内使用工作表名称。这是非常静态的,工作表名称将继续更改。每次我生成代码我都会得到很多工作表。

我希望这段代码可以像复制工作簿中的所有工作表一样工作。之后它将删除一些工作表名称(这些工作表是静态的,因此可以轻松完成)。

1 个答案:

答案 0 :(得分:1)

如果您只想复制每张纸,只需使用:

ThisWorkbook.Sheets.Copy after:=wb.Sheets(1)
因此,不必计算纸张并循环它们。或者,如果您想循环遍历每个工作表,以便可以运行一些检查以测试您确实要复制每个工作表,则可以将引用更改为:

ThisWorkbook.Sheets(nsheets).Copy After:=wb.Sheets(1)