簡體   English   中英

Excel VBA:我切換到新工作簿並想刪除工作表,但代碼試圖刪除宏工作簿中的工作表

[英]Excel VBA: I switched to a new workbook and want to delete a sheet, but code is trying to delete sheet in macro workbook

我正在做一個相當大的貓救援項目。 我是一名志願者,只知道足夠的 VBA 是危險的。 我有一個包含我所有數據的電子表格。 有好幾張。 我編寫了一些代碼來按順序獲取數據,然后通過數據獲取 go,並為每只貓提取信息,並創建一個新工作簿,其中包含每只貓的工作表以及已編譯信息。 我已經走到最后一步,不知道如何完成我想做的事情。 創建新工作簿時,它會自動添加一個名為 Sheet1 的工作表。 我添加了所有新工作表,並想刪除空白的初始 Sheet1。 當我通過逐步完成代碼中的這一點時,我看到調試顯示它看到的是第一個工作簿中包含數據和 VBA 代碼的工作表,而不是包含所有貓姓名工作表的新工作簿. 我不確定我錯過了什么。 這是我遇到問題的代碼的一小部分。

....
Workbooks.Open(path_and_newfilename).Activate

If (MyFunctions.Sheet_Exists("Sheet1") = True) Then  
    Application.DisplayAlerts = False
    Worksheets("Sheet1").Delete
    Application.DisplayAlerts = True

End If
 




ActiveWorkbook.Save

刪除工作表

function 應該有一個工作簿參數,所以我認為這很容易失敗。

With Workbooks.Open(path_and_newfilename)
    If MyFunctions.Sheet_Exists("Sheet1") Then
        Application.DisplayAlerts = False
        .Worksheets("Sheet1").Delete
        Application.DisplayAlerts = True
    End If
    .Save
    '.Close False
End With

沒有 function:

With Workbooks.Open(path_and_newfilename)
    On Error Resume Next
    Dim ws As Worksheet: Set ws = .Worksheets("Sheet1")
    On Error GoTo 0
    If Not ws Is Nothing Then
        Application.DisplayAlerts = False
        ws.Delete
        Application.DisplayAlerts = True
    End If
    .Save
    '.Close False
End With

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM