Удалить макросы при копировании листов в новую книгу - PullRequest
0 голосов
/ 16 ноября 2018

Я работаю над шаблоном проекта для квартальных отчетов, где пользователь завершит отчет с помощью некоторых макросов, а затем экспортирует отдельные листы в новую рабочую книгу. когда я копирую листы в новую рабочую книгу, я хочу удалить все макросы / код 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

это никак не работает, пробую, есть ли другой способ удаления макросов при копировании листов в новую книгу?

спасибо,

1 Ответ

0 голосов
/ 16 ноября 2018

Возможно, я понял это.я исследовал сохранение как XLSX и обнаружил, что мне нужно изменить .savecopyas на .saveas и добавить формат файла

.SaveAs Filename:=strDesktopPath & "\" & ct & " Report.xls", FileFormat:=51
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...