如果指定字符串下面的单元格为空,则删除工作表。

问题描述 投票:0回答:1

我试图写一个脚本,它将循环浏览我的工作簿中的工作表,并在 "检测到"、"未检测到 "和 "其他 "字符串下的单元格为空时删除工作表。如果在这三个字符串中的任何一个下面输入了什么,工作表就不应该被删除。

我有一些代码(如下),如果某个特定的单元格是空的,就会删除工作表,但我需要集成一个片段来FIND这三个字符串中的任何一个(如果它们在那里,它们将在A列中),并偏移这一点来检查下面的单元格是否为空。

Sub DeleteEmptyWorksheets()

Dim MySheets As Worksheet

Application.DisplayAlerts = False

For Each MySheets In ActiveWorkbook.Worksheets
     If MySheets.Range(“A1”) = “” Then
     MySheets.Delete

End If

Next

Application.DisplayAlerts = True

End Sub

这个脚本将用于处理COVID19的测试结果,如果你能帮忙,那将是额外的业力点!!!。

谢谢你。

excel vba excel-vba
1个回答
0
投票

这里有一段代码,应该可以帮助你。

Sub DeleteEmptyWorksheets()
Dim MySheets As Worksheet
Dim rngTest As Range
Dim arTest
Dim blNBFound As Boolean

arTest = Array("detected", "not detected", "other")

Application.DisplayAlerts = False
For Each MySheets In ActiveWorkbook.Worksheets
    blNBFound = False
    For i = LBound(arTest) To UBound(arTest)
        Set rngTest = MySheets.Range("A:A").Find(arTest(i))
        If Not rngTest Is Nothing Then
            If Len(rngTest.Offset(1, 0)) > 0 Then
                blNBFound = True
                Exit For
            End If
        End If
    Next i
    If blNBFound = False Then MySheets.Delete
Next
Application.DisplayAlerts = True

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.