2017-04-05 88 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") 
相關問題