Я создаю файл xlsm, который принимает базу данных из нескольких сотен строк в качестве входных данных, обрабатывает их и выводит несколько отдельных файлов .xlsm, каждый из которых содержит некоторую переопределенную часть ввода.
Я хотел бы добавить простую подпрограмму «Worksheet_BeforeDoubleClick» к каждому из сгенерированных выходных файлов.
при работе через вход в конце цикла for я делаю следующее:
Dim numLines As Integer
Set CodeCopy = ThisWorkbook.VBProject.VBComponents("Module2").CodeModule
numLines = CodeCopy.CountOfLines
NewBook.VBProject.VBComponents("Sheet1").CodeModule.AddFromString CodeCopy.Lines(1, numLines)
AccessMode:=xlExclusive, _
ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
NewBook.Saved = False
NewBook.SaveAs Filename:="cw_" & cw & "_" & myVendors(N), _
ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges, _
FileFormat:=52
NewBook.Close
Если я добавлю перерыв перед «NewBook.Close», все, похоже, будет работать. Разделенный файл отображается как отдельный проект, а «Sheet2» содержит требуемый код.
Если я разрешу возобновить подпрограмму, файл закроется, но если я открою его вручную, код пропадет.
Если я остановлюсь на «NewBook.Close» и сохраню разделенный файл отдельно, код останется в файле.