Я работаю над шаблоном проекта для квартальных отчетов, где пользователь завершит отчет с помощью некоторых макросов, а затем экспортирует отдельные листы в новую рабочую книгу. когда я копирую листы в новую рабочую книгу, я хочу удалить все макросы / код VB, чтобы тот, кто получает отчет, просто получал данные, а не какие-либо макросы. то, что у меня есть ниже, копирует конкретные рабочие книги, которые мне нужны.
Dim ct
Dim strDesktopPath
Dim objWS as Object
On Error Resume Next
ct = Application.InputBox("Enter Contract Number (5555, 6666, 7777)", "Save As")
strDesktopPath = objWS.SpecialFolders("Desktop")
If ct = "5555" Then
Sheet1.Select
Sheet2.Select
Sheet3.Select
Sheet4.Select
Sheet5.Select
Selection.Copy
With ActiveWorkbook
.SaveCopyAs Filename:=strDesktopPath & "\" & ct & " Report.xls"
End With
Я провел исследование, но все, что я вижу, включает в себя что-то вроде ниже:
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Set VBProj = ActiveWorkbook.VBProject
Set objWS = CreateObject("WScript.Shell")
For Each VBComp In VBProj.VBComponents
If VBComp.Type = vbext_ct_Document Then
Set CodeMod = VBComp.CodeModule
With CodeMod
.DeleteLines 1, .CountOfLines
End With
Else
VBProj.VBComponents.Remove VBComp
End If
Next VBComp
это никак не работает, пробую, есть ли другой способ удаления макросов при копировании листов в новую книгу?
спасибо,