如果在列D中的单元格中找不到名称,请删除工作表

我之前问过一个关于我正在处理的worksheet_changemacros的问题。 这几乎是完整的,但现在我很难过。 我试图遍历工作簿中的所有工作表,如果在D6:D34范围内的任何单元格中找不到工作表的名称,我想要删除工作表。 我怎么写这个? 我完全难倒了。 当前代码:

Private Sub WorkSheet_Change(ByVal Target As Range) Application.ScreenUpdating = False 'Run faster Application.DisplayAlerts = False 'Just in case 'To add worksheets automatically Dim shtName As Variant For Each shtName In Sheets(1).Range("D6:D34") If shtName <> "" Then If WorksheetExists((shtName)) Then 'do nothing Else ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count) ActiveSheet.Name = shtName Sheets("Admin").Select End If Else 'there's no sheet End If Next 'to delete sheets with no matching value Dim ws_count As Integer Dim i As Long ws_count = ActiveWorkbook.Worksheets.Count For i = 1 To ws_count 'what do I need here??? Next i Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub Function WorksheetExists(sName As String) As Boolean WorksheetExists = Evaluate("ISREF('" & sName & "'!A1)") End Function 

 Dim ws As Worksheet ws_count = ActiveWorkbook.Worksheets.Count For i = ws_count To 2 Step -1 Set ws = ActiveWorkbook.Worksheets(i) If IsError(Application.Match(ws.Name,Sheets(1).Range("D6:D34"),0)) then Application.DisplayAlerts = False ws.Delete Application.DisplayAlerts = True End If Next i