在VBA中将Like(String Pattern)与Case组合在一起

我想在VBA代码中将LikeCase结合起来。 我目前的代码能够删除名称与范围A中名称不匹配的所有工作表:

 Dim MyCell As Range, MyRange As Range Dim wbook As Workbook, xWs As Worksheet Dim DeleteSheetFlag As Boolean Set MyRange = Sheets("Summary").Range("A2") Set MyRange = Range(MyRange, MyRange.End(xlDown)) Application.ScreenUpdating = False Application.DisplayAlerts = False Set wbook = ActiveWorkbook For Each xWs In wbook.Worksheets DeleteSheetFlag = True For Each MyCell In MyRange Select Case xWs.Name Case MyCell.Value, "Summary" DeleteSheetFlag = False Exit For End Select Next MyCell If DeleteSheetFlag Then xWs.Delete End If Next xWs Application.DisplayAlerts = True Application.ScreenUpdating = True 

我想以这种方式改变它,它将删除名称与范围A中的名称不相似的所有工作表。如果我能够得到类似

  Case **Like** MyCell.Value, "Summary" DeleteSheetFlag = False 

问题就解决了。 我的意思是类似于我们从正则expression式中所知道的模式匹配。 在我的例子中,例如,我有两个表的名字: Etat1Etat1(2) ,我想投入 范围A11 stringEta为了保持两者。

要强制这个你需要使用这样的解决方法:

 Select Case True Case MyCell.Value Like "*Summary*" Debug.Print "!" 'DeleteSheetFlag = False '... Case MyCell.Value Like "*OtherCase*" DeleteSheetFlag = False '... End Select