2017-04-05 198 views
0

我有一个主要的excel文件,其中包含我的宏。在这一个中,我创建了这些工作表,作为将来需要处理和修改的excel文件的模板。现在我需要将特定工作表及其内容复制到新的工作簿中。如何使用VBA将主工作簿中的特定工作表导出到新的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服务器筛选我导入数据的日期)

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

我提前感谢你!

+0

http://stackoverflow.com/a/30393989/4539709 – 0m3r

+0

你尝试过什么吗?喜欢录制自己做它/谷歌? –

+0

您可以在保存文件之前使用类似thisworkbook.worksheets(array(sheet1,sheet2,sheet3))的副本。 –

回答

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 
+0

我建议同样的事情。但由于某种原因,似乎有脚本超出范围错误。 –

+0

@SivaprasathV,你周围的每个表名缺少引号('“”') – user3598756

+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") 
相关问题