gpt4 book ai didi

vba - 使用 VBA 在 Excel 中删除工作表和数据透视表

转载 作者:行者123 更新时间:2023-12-04 20:31:34 25 4
gpt4 key购买 nike

我正在尝试在 VBA 中集成电源枢轴和枢轴图的创建,并且已经完成了很大一部分。
但是,我遇到了一个我似乎无法克服的问题

我创建了新的工作表,在其中创建了 Pivot 并将其导出为 PDF。
完成后,我删除数据透视表和工作表:

Sub DeleteAllPivotTables()
PURPOSE: Delete all other sheets and pivots
Dim sht As Worksheet
Dim pvt As PivotTable
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each sht In ActiveWorkbook.Worksheets
If sht.Name <> "Output" Then
If sht.Name <> "Syntax" Then
For Each pvt In sht.PivotTables
pvt.TableRange2.Clear
Next pvt
sht.Delete
End If
End If
Next sht
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

当我删除没有用于删除数据透视表的宏部分的工作表时,我遇到了运行时 1004 错误。据我所知,因为枢轴名称“PivotTable1”已经被使用并且没有被宏删除。
当工作表已经被删除时,我该如何解决这个问题?

提前致谢!

最佳答案

清除数据透视表时实际上并没有删除它。如果你想删除它,你需要使用像 this 这样的解决方案。或 this .我已更新您的代码以包含这些解决方案。

Sub DeleteAllPivotTables()
PURPOSE: Delete all other sheets and pivots
Dim sht As Worksheet
Dim pvt As PivotTable
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each sht In ActiveWorkbook.Worksheets
If sht.Name <> "Output" Then
If sht.Name <> "Syntax" Then
For Each pvt In sht.PivotTables
pvt.Range(pvt.TableRange2.Address).Delete
Next pvt
sht.Delete
End If
End If
Next sht
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

希望能帮助到你!

关于vba - 使用 VBA 在 Excel 中删除工作表和数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49494265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com