如何使用VBA将主工作簿中的特定工作表导出到新的Excel文件?

时间:2017-04-05 05:59:45

标签: excel vba excel-vba

我有一个包含我的宏的主excel文件。在这一篇文章中,我创建了工作表作为我需要使用和修改的未来excel文件的模板。现在我需要将特定工作表及其内容复制到新工作簿中。

我还使用VBA创建此工作簿:

Sub NOUDOC()
    Dim wbNew As Workbook
    Dim data As Date
    data = Range("H3").Value
    Set wbNew = Workbooks.Add()
    ActiveWorkbook.SaveAs ("C:\Users\Alina\Desktop\Carburant " & Format(data, "MMMM YYYY") & ".xlsx") 
End Sub

(H3是我输入的日期,用于过滤从SQL服务器导入的数据)

所以我想在我的主excel文件中使用VBA来创建一个新的excel文档,其中包含来自main的特定工作表。

我提前感谢你!

2 个答案:

答案 0 :(得分:0)

试试以下?我还没有尝试过。

Sub NOUDOC()
Dim wbTemplate as Workbook
Set wbTemplate = ActiveWorkbook
Dim wbNew As Workbook
Dim data As Date
data = Range("H3").Value
Set wbNew = Workbooks.Add()
sheet_count = 1
For Each each_sheet in wbTemplate.Sheets
    each_sheet.Copy Before:= wbNew.Sheets(sheet_count)
    sheet_count = sheet_count + 1
Next
wbNew.SaveAs ("C:\Users\Alina\Desktop\Carburant " & Format(data, "MMMM YYYY") & ".xlsx")

答案 1 :(得分:0)

您可以使用Worksheets对象的数组“风味”:

Sub NOUDOC()
    Dim data As Date
    data = Range("H3").Value

    Worksheets(Array("Sh1", "Sh2", "Sh3")).Copy '<--| this will copy listed sheets into a new (and Active) workbook
    ActiveWorkbook.SaveAs "C:\Users\Alina\Desktop\Carburant " & Format(data, "MMMM YYYY") & ".xlsx"
End Sub