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

質問:空のシートを削除しようとしましたが、正確なコードを取得できません。この場合、誰かが私を助けることができますか?ありがとう。

4

1 に答える 1

1

どこwbから来たのかを定義しておらずsh、シートを反復処理するために使用していません。

アクティブなワークブックのシートを反復処理したいと思います。その場合、wborは必要ありません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
于 2013-08-28T15:06:31.100 に答える