2014-09-01 4 views
0

Мне было интересно, может ли кто-нибудь помочь мне с кодом. Я почти там, но не полностью.копировать много листов и удалять несколько листов

Sub col_export_Klikken() 

Dim wb As Workbook 
countsheets= ThisWorkbook.Sheets.Count 

Set wb = Workbooks.Add 
For nsheets = 1 To countsheets 
    ThisWorkbook.Sheets("sheetname").Copy After:=wb.Sheets(1) 
Next nsheets 
ThisWorkbook.Sheets("mainuser").delete 
ThisWorkbook.Sheets("maincode").delete 

wb.SaveAs "C:\Users\not\Desktop\wb2.xlsx" 
End Sub 

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

Я хочу, чтобы этот код работал, как будто он копирует все листы в книге. После этого он удалит несколько имен листов (эти листы являются статическими, так что это можно сделать легко).

ответ

1

Если вы просто хотите, чтобы скопировать каждый лист вы можете просто использовать:

ThisWorkbook.Sheets.Copy after:=wb.Sheets(1) 

поэтому не приходится рассчитывать листы и цикл через них. В качестве альтернативы, если вы хотите пройти через каждый лист, чтобы вы могли выполнить некоторые проверки, чтобы проверить, что вы хотите скопировать их, вы можете изменить свою ссылку на:

ThisWorkbook.Sheets(nsheets).Copy After:=wb.Sheets(1) 

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

  • Нет связанных вопросов^_^