VBA-Excel强制重新启动

VBA-Excel强制重新启动,vba,excel,excel-2007,Vba,Excel,Excel 2007,我的代码有一个主要问题,它应该重置工作表,而不是关闭整个工作簿并强制重新启动。这不是一个问题,只是在我添加了错误恢复下一步时从开始的最后一位代码后才发生的 Sub Reset() Application.ScreenUpdating = False Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If ws.Name = "Set Up" Or ws.Name = "Report"

我的代码有一个主要问题,它应该重置工作表,而不是关闭整个工作簿并强制重新启动。这不是一个问题,只是在我添加了错误恢复下一步时从
开始的最后一位代码后才发生的

Sub Reset()

    Application.ScreenUpdating = False

    Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        If ws.Name = "Set Up" Or ws.Name = "Report" Then
            Else:
                Application.DisplayAlerts = False
                ws.Delete
        End If
    Next

    Worksheets("Report").Cells.ClearContents

    On Error Resume Next
    Application.DisplayAlerts = False
    ThisWorkbook.Charts.Delete
    Application.DisplayAlerts = True
    On Error GoTo 0

End Sub

提前感谢

这将删除工作表中的图表,例如activesheet:

Sub DeleteallCharts() 
    Dim chtObj As ChartObject 
    For Each chtObj In ActiveSheet.ChartObjects
        chtObj.Delete 
    Next 
End Sub
如果要删除工作簿中的所有图表,则必须按如下方式循环工作表:

Sub DeleteallChartsInWorkbook() 
    Dim chtObj As ChartObject 
    Dim WS As Worksheet
    For Each WS in Thisworkbook.Worksheets
        For Each chtObj In WS.ChartObjects
            chtObj.Delete 
        Next chtObj 
    Next WS
End Sub

这将删除工作表中的图表,例如activesheet:

Sub DeleteallCharts() 
    Dim chtObj As ChartObject 
    For Each chtObj In ActiveSheet.ChartObjects
        chtObj.Delete 
    Next 
End Sub
如果要删除工作簿中的所有图表,则必须按如下方式循环工作表:

Sub DeleteallChartsInWorkbook() 
    Dim chtObj As ChartObject 
    Dim WS As Worksheet
    For Each WS in Thisworkbook.Worksheets
        For Each chtObj In WS.ChartObjects
            chtObj.Delete 
        Next chtObj 
    Next WS
End Sub

如果您有图表表,则应使用以下代码:

Sub DeleteChartSheets()

    Dim ch As Chart

    For Each ch In ThisWorkbook.Charts
        ch.Delete
    Next

End Sub

如果您有图表表,则应使用以下代码:

Sub DeleteChartSheets()

    Dim ch As Chart

    For Each ch In ThisWorkbook.Charts
        ch.Delete
    Next

End Sub

我想这一行就是问题所在:
ThisWorkbook.Charts.Delete
您根本无法删除这样的内置集合。您应该循环浏览并逐个删除图表。因此,对于本工作簿中的每个图表,如果是charts.Name=“Locations”则是charts.delete,那么请按照
的顺序执行。我确实告诉了您问题所在以及如何在此处解决问题,甚至没有将其作为答案。另外,我给你写了一个答案,然后你以图表的形式给出了更多的细节,然后我对此进行了评论,并告诉你简单而容易地做什么。在这两种情况下,你都忽略了我的评论,而其他人在回答部分也放了同样的东西,你选择了它作为答案。帮助这里的一些人的感觉真是太棒了!我想这一行就是问题所在:
ThisWorkbook.Charts.Delete
您根本无法删除这样的内置集合。您应该循环浏览并逐个删除图表。因此,对于本工作簿中的每个图表,如果是charts.Name=“Locations”则是charts.delete,那么请按照
的顺序执行。我确实告诉了您问题所在以及如何在此处解决问题,甚至没有将其作为答案。另外,我给你写了一个答案,然后你以图表的形式给出了更多的细节,然后我对此进行了评论,并告诉你简单而容易地做什么。在这两种情况下,你都忽略了我的评论,而其他人在回答部分也放了同样的东西,你选择了它作为答案。帮助这里的一些人的感觉真是太棒了!每个图表都是它自己的工作表,它不是嵌入的。然后您可以在代码中使用
thisworkbook.sheets
而不是
thisworkbook.worksheets
。工作表可以是工作表或图表。不需要单独删除图表。如果成功了,那么请告诉我,这样我就可以改变我的回答。我感谢你的帮助。我给了你虚假的互联网积分。每个图表都是它自己的表格,没有嵌入。然后你可以在代码中使用
thisworkbook.sheets
而不是
thisworkbook.worksheets
。工作表可以是工作表或图表。不需要单独删除图表。如果成功了,那么请告诉我,这样我就可以改变我的回答。我感谢你的帮助。我给你假互联网积分。