Excel 如何从MS Word中删除调用代码的工作表?

Excel 如何从MS Word中删除调用代码的工作表?,excel,vba,ms-word,Excel,Vba,Ms Word,当下面的代码到达.Delete指令时,它将进入一个无止境的循环。在任务管理器中停止时,将显示错误消息“Automation error”。当按下错误消息中的调试按钮时,.Delete行高亮显示。该工作表未被删除。不会显示警报消息 Sub DeleteXlTable(Wb As Workbook, _ Frm As fTextLib) ' SSY 047 ++ 30 Dec 2018 Dim LibWs As Worksheet Dim

当下面的代码到达.Delete指令时,它将进入一个无止境的循环。在任务管理器中停止时,将显示错误消息“Automation error”。当按下错误消息中的调试按钮时,.Delete行高亮显示。该工作表未被删除。不会显示警报消息

Sub DeleteXlTable(Wb As Workbook, _
                  Frm As fTextLib)
    ' SSY 047 ++ 30 Dec 2018

    Dim LibWs As Worksheet
    Dim Rng As Excel.Range

'    Application.DisplayAlerts = False
    Set LibWs = SetLibWs(Wb, Frm)
    With LibWs
        If .ListObjects.Count = 1 Then
            If Wb.Worksheets.Count = 1 Then
                With .UsedRange
                    .Columns.Delete
                    .Rows.RowHeight = 12.75
                End With
                .Name = "Sheet1"
            Else
                .Delete
            End If
        Else
            Set Rng = .ListObjects(Frm.CbxTbl.Text).Range
            Do While Rng.Row > NwsFirstLibRow
                If Not .Cells(Rng.Row - 1, NwsKey).ListObject Is Nothing Then Exit Do
                Set Rng = Rng.Offset(-1).Resize(Rng.Rows.Count + 1)
            Loop
            Rng.Rows.EntireRow.Delete
        End If
    End With
    Application.DisplayAlerts = True
End Sub
该代码在嵌入MS Word的VBA项目中调用。Excel应用程序调用正确且可用。工作表存在,并且在出错时可以访问。我尝试用完整对象的名称Wb.Worksheets(LibWs.name).Delete替换该行,结果相同。在删除工作表之前,我尝试删除ListObject。该表已删除,但下一行出现相同错误。
即使删除的工作表是活动工作表,从独立Excel应用程序运行的类似代码也能完美工作。我想知道在删除工作表之前是否应该保存工作簿,但不知道为什么这会产生影响。有什么想法吗?

根据我们之前的对话,Excel中的警报似乎导致了问题

加:

Wb.Parent.DisplayAlerts=False

其中:

Application.DisplayAlerts=False


已被注释掉。

可能是因为您没有在Excel中关闭DisplayAlerts,而只是在Word中关闭。Excel可能会弹出“是否确实要删除此工作表”的弹出消息。它正在等待您的输入。尝试,
Wb.Parent.DisplayAlerts=False
在您已注释掉的
Application.DisplayAlerts=False
位置,看看是否这样做。这一点很好!但是Alerts=False行已经被注释掉,代码执行不会到达Alerts。然而,我应该提到,当错误发生时,窗口是不活动的或不可见的。太悲观了!我是。你的泡泡想法似乎一针见血。更正对象并禁用警报显示后,错误消失。请把你的答案写在一个答案里,这样我就可以接受了。万分感谢!我打算屈服。