我試圖用VB6替換Excel電子表格中的最後一個工作表。由於刪除最後一個工作表是不允許的,我一直在試圖增加一個臨時表,刪除一個,我不想,取代舊的,然後刪除臨時表,如下所示: -從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"
,正如我通過顯示電子表格進行驗證。
第二invokation給出在該行的錯誤指示: -
Cannot rename a sheet to the same name as another sheet, a referenced object library or a workbook referenced by Visual Basic.
(編號1004)。
有誰知道我該如何擺脫這個看不見的工作表,或達到理想效果的更好方法?
你的邏輯似乎是確定。如果你真的只需要在最後一次循環內的'條件語句'改變爲反向邏輯(而不是'Select Case'),那麼在上一次循環改變'最後一次循環之後只保留'SheetToReplace'' if if end if':If lSheet.Name <> 「SheetToReplace」then .... End if'。 – 2013-05-13 12:10:47
你說這張表是隱藏的嗎?你需要首先將其顯示出來然後刪除它 – glh 2013-05-13 12:31:37
@glh,這肯定有改進的地方,工作表現在被刪除了,但是隻有當你離開它一會兒,我想有一些異步的工作正在完成,如果你想寫這個答案,我會打勾。 – 2013-05-13 12:50:47