1

我正在尝试使用 VB6 替换 Excel 电子表格中的最后一个工作表。由于不允许删除最后一个工作表,我一直在尝试添加一个临时工作表,删除我不想要的工作表,替换旧工作表,然后删除临时工作表,如下所示:-

Set temporary_sheet = mwbkBook.Worksheets.Add
temporary_sheet.Name = "NameThatIsUnlikelyToExist"    ' Error Here.

For Each lSheet In mwbkBook.Worksheets
    Select Case lSheet.Name
        Case "SheetToReplace"
            Application.DisplayAlerts = False
            lSheet.Delete
    End Select
Next lSheet

Set mwshSheet = mwbkBook.Worksheets.Add
mwshSheet.Name = "SheetToReplace"
' Fill in mwshSheet

For Each lSheet In mwbkBook.Worksheets
    Select Case lSheet.Name
        Case "Sheet1", "Sheet2", "Sheet3", "NameThatIsUnlikelyToExist"
            Application.DisplayAlerts = False
            lSheet.Delete
    End Select
Next lSheet

这段代码的第一次调用给了我一个包含一个工作表的电子表格"SheetToReplace",我通过显示电子表格来验证。

第二次调用在指示的行出现错误:-

Cannot rename a sheet to the same name as another sheet, a referenced object library or a workbook referenced by Visual Basic.

(编号 1004)。

有谁知道我怎样才能摆脱这个看不见的工作表,或者更好的方法来达到预期的结果?

4

2 回答 2

1

你说床单是隐藏的?您需要先使其可见,然后将其删除。 

尝试:

lSheet.Visible = TRUE
lSheet.Delete
于 2013-05-13T12:55:17.160 回答
1

由于不允许删除最后一个工作表..

如果您只想删除最后一张纸,您可以这样做

mwbkBook.Sheets(mwbkBook.Sheets.Count).Delete
于 2013-05-13T12:50:17.743 回答