Excel VBA:我切换到一个新工作簿并希望删除工作表,但代码正在尝试删除宏工作簿中的工作表



我正在做一个相当大的猫救援项目。我是一名志愿者,只知道足够危险的VBA。我有一个包含我所有数据的电子表格。有几张床单。我写了一些代码来按顺序获取数据,然后遍历数据并提取每只猫的信息,并创建一个新的工作簿,其中包含每只猫一张包含编译信息的表。我已经到了最后一步,不知道如何完成我要做的事情。创建新工作簿时,它会自动添加一张名为Sheet1的工作表。我添加了所有新的工作表,并希望删除空白的初始工作表1。当我在代码中逐步了解到这一点时,我会发现调试显示它看到的是第一个工作簿中包含数据和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

删除工作表

函数应该有一个工作簿参数,所以我认为这很容易失败。

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

无功能:

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

相关内容

最新更新