需求:
手动报表生成后,通常需要删除一些辅助工作表及VBA代码,因为用户是不需要看到这些内容的。
代码:
其中,VBA组件类型有以下几种(供参考):
Const vbext_ct_ActiveXDesigner = 11
Const vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100 (&H64)
Const vbext_ct_MSForm = 3
Const vbext_ct_StdModule = 1
Sub deleteVBACode()
Dim wkBook As Workbook '用于删除delivery文件中的VBA代码(模块及工作表)
Dim objVbc As Object '定义delivery文件中的VBA组件(VB Component)
Set wkBook = GetObject(Filename)
'删除delivery文件中的VBA代码 (用户无需看到这些代码)
With wkBook.VBProject
For Each objVbc In .VBComponents
Select Case objVbc.Type
Case 1, 2, 3
.VBComponents.Remove .VBComponents(objVbc.Name)
Case Else
With objVbc.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next
End With
End Sub