2015-03-30 3 views
1

Я хотел бы сохранить ряд рабочих листов из текущей книги в другую книгу и исключить из этого процесса сохранение листа с именем «кнопки» (в текущем).Сохранить выбранные листы в другой рабочей книге в VBA

Помогите пожалуйста? Количество рабочих листов изменчиво FYI.

Ниже приведено то, что у меня есть до сих пор, включая все листы из текущей книги.

Sub SaveAs() 

D1 = VBA.Format(Now, "mm_DD_yyyy") 
For Each ws In Application.Workbooks 
    ws.SaveAs Filename:="C:\Users\e2309\Desktop\Andy's\GBB_Report_" & D1 & ".csv" 
Next ws 

Application.Quit 
End Sub 

ответ

0

Или более непосредственно

  • копии вся книга
  • удалить избыточный лист

код

Sub Simpler() 

Dim wb As Workbook 
Dim strFile As String 

strFile = "C:\temp\yourfile.xlsm" 
ThisWorkbook.SaveAs strFile, xlOpenXMLWorkbookMacroEnabled 
Application.DisplayAlerts = False 
ThisWorkbook.Sheets("buttons").Delete 
Application.DisplayAlerts = True 
End Sub 
+0

Да! Именно так я и понял. Огромное спасибо! – Huy

0

Это может приблизиться к вам. Обратите внимание, что это не полно и очень непроверено.

Sub work() 
Dim WB As Workbook 
Dim Nwb As Workbook 
Dim WS As Worksheet 
Set Nwb = New Workbook 
Set WB = ThisWorkbook 

For Each WS In WB.Sheets 
    If WS.Name <> "Don't copy" Then 
     WS.Copy Nwb.Sheets("sheet1") 
    End If 
Next 

Nwb.Save 

End Sub 
+0

Х, обратите внимание, что вы бы использовать вас r 'ws.SaveAs', где Bigtree имеет« nwb.Save ». (обязательно замените свой 'ws' его' nwb') – FreeMan

+0

, что там делает «sheet1»? Я не думаю, что мне нужен Nwb, не так ли? Ошибка 429: компонент ActiveX не может создать объект на «Set Nwb = New Workbook» – Huy

+0

Неверная строка ws.copy ws.sheets («sheet1»). Извините, я очень новичок в решении VBA – Huy

Смежные вопросы