首页 > 解决方案 > 删除与清除内容 VB.net

问题描述

我在 VB.net 中有一个代码来删除某些名为:T10、T12、T16 等的 Excel 表格,所以我编写了这段代码来删除它们,如下所示:

    Sub DeleteTSheets_Restart()
        Dim xl As New Excel.Application
        Dim wb As Excel.Workbook
        Dim ws As Excel.Worksheet
        Dim cnt As Integer
        xl.DisplayAlerts = False
        cnt = 0
        wb = xl.Workbooks.Open("C:\Patches\Main_Master_VB.xlsm")
        For Each ws In wb.Sheets
            If InStr(1, ws.Name, "T") And Len(ws.Name) = 3 Then
                ws.Delete()
            End If
            cnt = cnt + 1
        Next ws
        xl.DisplayAlerts = True
        wb.Close(SaveChanges:=vbTrue)
    End Sub

但它不会删除它们但是如果我使用相同的代码并仅更改以下行:

    ws.Delete with ws.Cells.ClearContents() 

代码有效并清空所有工作表,那么为什么删除不起作用?

感谢和问候

莫赫布·拉比

标签: excelvba

解决方案


    Sub DeleteTSheets_Restart()
        Dim xl As New Excel.Application
        Dim wb As Excel.Workbook
        Dim ws As Excel.Worksheet
        Dim cnt As Integer
        xl.DisplayAlerts = False
        cnt = 0
        wb = xl.Workbooks.Open("C:\Patches\Main_Master_VB.xlsm")
        For Each ws In wb.Sheets
            If InStr(1, ws.Name, "T") And Len(ws.Name) = 3 Then
                ws.Delete()
            End If
            cnt = cnt + 1
        Next ws
        xl.DisplayAlerts = True
        wb.Close(SaveChanges:=vbTrue)
    End Sub

推荐阅读