Option Explicit
Sub Main()
' Example Sub to demonstrate usage
Dim ReportWS As Worksheet
Dim ShapeToKeep As String
Set ReportWS = Worksheets("Report")
ShapeToKeep = "Ctrl2"
DeleteControls ReportWS, ShapeToKeep
'Export Workbook
End Sub
Sub DeleteControls(WS As Worksheet, Optional Keep As String)
' Delete all shapes (except excluded) on sheet
Dim Shp As Shape
For Each Shp In WS.Shapes
If Not IsMissing(Keep) Then
If Shp.Name <> Keep Then
Shp.Delete
End If
Else
Shp.Delete
End If
Next Shp
End Sub
3条答案
按热度按时间hpxqektj1#
我假设你在这里导出到PDF,因为@TimWilliams已经涵盖了“导出为Excel文件”的路线。
如果尝试导出此报告:
你可以看到它仍然保留我的导出按钮。
如果我将按钮设置为“不打印”:
当我尝试导出时:
按钮不包括在导出中。
pvabu6sv2#
如果要在删除之前删除报表上的所有控件按钮,可以使用以下Sub:
这包括按名称保留特定图形的选项。
如果要排除多个形状,请将"保留"更改为字典。
这是特定于"形状"的,您可以更改它以删除其他对象。
示例:
6rvt4ljy3#
谢谢,我结束了使用下面的代码,它工作。
子删除所有形状()
保存名称=应用程序.获取另存为文件名(文件筛选器:=“Excel文件(.xlsx),.xlsx”)活动工作簿.另存为文件名:=保存名称,文件格式:=51结束子文件