2016-07-26 8 views
0

У меня есть книга со многими листами. Я создал много флажков на пользовательской форме, чтобы, если я хочу создать копию листов, просто установите флажки и нажмите кнопку button1, имя этих копий, например: «(Excel)». Как переместить эти листы « (Excel)» в новую книгу?Экспорт/Перемещение листов в новую книгу

'Create sheets 
Dim Ctl As Control 
For Each Ctl In Me.Controls 
    If Ctl.Value = True Then Run Ctl.Tag 
Next 

'Move Sheets name *(Excel) to other workbook. But it's only move one sheet 
Dim bReplace As Boolean, sh As Worksheet 
Dim bk As Workbook 
bReplace = True 
For Each sh In Worksheets 
If sh.Name Like "*(Excel)" Then 
sh.Select Replace:=bDontReplace 
bReplace = False 
End If 
Next 

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

ответ

0

Вот простой подход, чтобы переместить много листов:

Sub CopyWorkbook() 

Dim currentSheet as Worksheet 
Dim sheetIndex as Integer 
sheetIndex = 1 

For Each currentSheet in Worksheets 

    Windows("source workbook").Activate 
    currentSheet.Select 
    if currentSheet.Name like "*(Excel)" then 
     currentSheet.Move Before:=Workbooks("target workbook").Sheets(sheetIndex) 
    End if 

    sheetIndex = sheetIndex + 1 

Next currentSheet 

End Sub 

Чтобы экспортировать их в PDF это будет делать внутри события нажатия кнопки:

SourceWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select 
    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
     "C:\Users\you\Desktop\exported_sheet.pdf", Quality:=xlQualityStandard, _ 
     IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ 
     True 

Надеется, что это помогает!

+0

Но я хочу переместить много листов с таким же именем, как в 6 листах, я просто переместил 3 листа с таким же именем _ (Excel) _: «Данные»; ** «Грант (Excel)» **; «Asset»; ** «Asset (Excel)» **; ** «Bub (Excel)» **; «Финал» – kobebryant

+0

@ kobebryant код, который я разместил, вы перемещаете все листы книги независимо от того, какое имя они имеют. – jsanchezs

+0

дорогие jsanchezs, но я просто хочу переместить листы, что я хочу, и эти листы имеют то же самое имя «... (Excel)» – kobebryant

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