2013-08-28 3 views
0
Sub deleteemptysheets() 
Dim sh As Worksheet, wb As Workbook, c As Range 
sh = Sheets(wb.Sheets) 
    For Each c In wb.Sheets 
     If IsEmpty(sh.UsedRange) Then 
      sh.Delete 
     End If 
    Next 
Set sh = Nothing 
Set wb = Nothing 
Set c = Nothing 
End Sub 

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

ответ

1

Вы не определяете, откуда берется wb, и вы не используете sh для прокрутки листов.

Я предполагаю, что вы хотите перебирать листы в активной книге. Если это так, вам не нужно wb или c. Попробуйте следующее:

Sub deleteemptysheets() 
    Dim sh As Worksheet 
    For Each sh In ActiveWorkbook.Sheets 
     If IsEmpty(sh.UsedRange) Then 
      sh.Delete 
     End If 
    Next 
    Set sh = Nothing 
End Sub 
+0

Я хочу выбрать листы из разных книг, предоставив Inputbox. – Sevak

+0

Итак, пожалуйста, обновите свой вопрос кодом, вызывающим deleteemptysheets() – Joe

+0

Sub delete() Dim sh As Worksheet, wb As Workbook, c As Диапазон wb = InputBox («название рабочей книги») sh = wb .Sheets для каждого с в ш Если IsEmpty (sh.UsedRange) Тогда sh.delete End If Next End Sub – Sevak

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