2013-08-28 55 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来遍历工作表。

我假设你想遍历活动工作簿中的工作表。如果是这样,你不需要wbc。试试这个:

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

子删除() 昏暗SH作为工作表,世行作为工作簿,C为靶场 WB =的InputBox(“工作簿名称”) SH = WB的代码你的问题.Sheets 关于C在SH 如果为IsEmpty(sh.UsedRange)然后 sh.delete 结束如果 接下来 末次 – Sevak

相关问题