идея изменить код кодом порочна сама по себе
если вы в состоянии написать код, который должен изменить код, то просто напишите код, который со старта учтет все необходимое
стандартно,
опишите не проблему к которой вы пришли пытаясь изменить код кодом, а задачу, которую решаете все это наверняка можно будет написать кодом, который учтет все варианты
и, отвечая на ваш вопрос:
Цитата |
---|
Запись кода в модуль листа. |
1. скопируйте этот
Код |
---|
Sub InsSub2List1()
Dim m
With ThisWorkbook.VBProject.VBComponents(Worksheets(1).CodeName).CodeModule
.InsertLines .CountOfLines + 1, vbLf & "sub " & NM & "()" & vbLf & _
"' this sub insert here by another code" & vbLf & "end sub"
End With
End Sub
Function NM$()
Dim s$, i&
Randomize: s = "SB_"
For i = 1 To 10 + Rnd() * 20
s = s & Chr(65 + Rnd() * 24)
Next
NM = s
End Function |
в программный модуль
2. доверте VBA доступ к обектной модели VBA
- Файл
- Параметры
- Центр управления безопасностью
- Параметры центра управления безопасностью
- Параметры макросов
- Доверить доступ к обектной модели VBA -
поставте птичку - Ок
- Ок
3. жмите в файле Alt+F8, выполните InsSub2List1
сколько раз выполните InsSub2List1, столько новых процедур появится в модуле листа 1
удачи!