Excel Vba在删除工作表后停止执行

Excel Vba在删除工作表后停止执行,excel,vba,Excel,Vba,我是VBA新手。我已经编写了一个代码来删除特定的工作表。执行删除工作表宏后,excel宏停止执行。它没有进一步执行 这是我的密码 Sub CopyAcross() Dim sheetName As String sheetName = "Master_Base" If WorksheetExists(sheetName) Then DeleteSheet (sheetName) End If MsgBox "Debug" Workbooks("Master_Base.csv").Sheets

我是VBA新手。我已经编写了一个代码来删除特定的工作表。执行删除工作表宏后,excel宏停止执行。它没有进一步执行

这是我的密码

Sub CopyAcross()
Dim sheetName As String
sheetName = "Master_Base"
If WorksheetExists(sheetName) Then
 DeleteSheet (sheetName)
End If
MsgBox "Debug"

Workbooks("Master_Base.csv").Sheets("Master_Base").Copy Before:=Workbooks("Copy of    test.xlsm").Worksheets("Sheet3")
End Sub 

Sub DeleteSheet(strSheetName As String)
' deletes a sheet named strSheetName in the active workbook
Application.DisplayAlerts = False
Sheets(strSheetName).Delete
Application.DisplayAlerts = True
End Sub
有谁能帮上忙吗


提前感谢。

由于您正在使用多个工作簿,请使用对象。否则,您的代码可能会使用错误的工作簿/工作表

试试这个(未经测试


我也遇到过同样的问题,在Excel版本为16.0.10730.20264 32位的Windows 7计算机上,代码运行正常,没有问题。但是,在具有相同Excel安装版本的Windows 10计算机上,宏将在工作表之后立即停止执行。删除行

我发现这只发生在我试图操作包含VBA代码的工作簿时,我在宏期间打开了该工作簿

该问题是由计算机上的宏安全设置引起的。如果在打开工作簿之前将Automation Security设置为Low,则不会再出现以下错误:

使用以下代码:

Application.AutomationSecurity = msoAutomationSecurityLow

meI通过在CopyCross API上设置断点来逐行执行。它正好在工作表(strSheetName)处停止。Delete.remove
Application.DisplayAlerts=False
并查看您收到了什么消息,如果有的话?我已经删除了它。但它还是停在同一点上,到底发生了什么?它能传达信息吗?那一行突出显示了吗?当我从不同的工作簿中执行时,代码工作得非常好。执行中没有中断。谢谢你,西德哈特。:)非常感谢你!我也有同样的问题,而你的解决方案非常有效。在我的例子中,AutomationSecurity被设置为msoAutomationSecurityForceDisable,在更改为Low后,一切正常。我也遇到了同样的问题。。。我第一次尝试将其切换到
msoAutomationSecurityForceDisable
,但没有成功。。。它必须是
msoAutomationSecurityLow
。另一个错误。
Application.AutomationSecurity = msoAutomationSecurityLow