如果范围" D14:K70" 在整个工作簿中为空但我不知道如何忽略"我创建了一个删除工作表的代码--------"工作表范围 72x ,空格 368x 。此外,我在表格(i)。删除
时遇到问题Sub DeletingEmptyPages()
Dim i As Long
For i = Sheets.count To 1 Step -1
If WorksheetFunction.CountIf(Sheets(i).Range("D14:K70"), "") >= 368 Then
If Sheets.count > 1 Then
Application.DisplayAlerts = False
Sheets(i).Delete
Application.DisplayAlerts = True
Else
MsgBox "Only 1 sheet left"
Exit Sub
End If
End If
Next i
End Sub
答案 0 :(得分:0)
处理同一问题的方式略有不同。你可以添加一个完整的循环来停止,如果它找到了一些东西,因为它会稍微加快这个过程但是范围太小我不认为这将是一个问题。
Sub DeletingEmptyPages()
Dim i As Long
Dim strTestRange As String
Dim bDeleteSheet As Boolean
strTestRange = "D14:K70"
For Each ws In ThisWorkbook.Worksheets
bDeleteSheet = True
For Each c In ws.Range(strTestRange)
If Not (c.Value = "" Or c.Value = "-") Then bDeleteSheet = False
Next c
If bDeleteSheet Then
If Sheets.Count > 1 Then
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
Else
MsgBox "Only 1 sheet left"
Exit Sub
End If
End If
Next ws
End Sub
答案 1 :(得分:0)
Sub DeletingEmptyPages()
Dim i As Long
For i = Sheets.count To 1 Step -1
If WorksheetFunction.CountA(Sheets(i).Range("D14:K25, D27:K27, D29:K31, D34:K34, D36:K52, D55:K55, D57:K57, D59:K66, D68:K68, D70:K70 "), "") >= 368 Then
If Sheets.count > 1 Then
Application.DisplayAlerts = False
Sheets(i).Delete
Application.DisplayAlerts = True
Else
MsgBox "Only 1 sheet left"
Exit Sub
End If
End If
Next i
End Sub