Цитата: Добавлено:
HarryG
Цитата:MsgBox (BottleRashod.CodeName)
выдает пусто.
Ошибка в коде. Надо вместо MsgBox (BottleRashod.CodeName) написать msgbox(BottleOst.CodeName), а вообще есть такая штука, как sheets("БутылкаОстатки").codename
Добавлено:
Цитата:для программного добавления методов
А можно с этого места по-подробнее, если не секрет, конечно
Есть процедура с таким кодом
Str2 = "Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)" & vbCrLf
Str2 = Str2 & " 'Exit Sub" & vbCrLf
Str2 = Str2 & " Dim c1, r1, c2, r2" & vbCrLf
Str2 = Str2 & " c1 = ActiveWindow.ScrollColumn" & vbCrLf
Str2 = Str2 & " r1 = ActiveWindow.ScrollRow" & vbCrLf
Str2 = Str2 & " c2 = ActiveCell.Column" & vbCrLf
Str2 = Str2 & " r2 = ActiveCell.Row" & vbCrLf
Str2 = Str2 & " Worksheets(""" + NameNextSheet + """).Activate" & vbCrLf
Str2 = Str2 & " Worksheets(""" + NameNextSheet + """).Cells(r2, c2).Select" & vbCrLf
Str2 = Str2 & " ActiveWindow.ScrollColumn = c1" & vbCrLf
Str2 = Str2 & " ActiveWindow.ScrollRow = r1" & vbCrLf
Str2 = Str2 & " Cancel=True" & vbCrLf
Str2 = Str2 & "End Sub"
With Workbooks(NameBook).VBProject.VBComponents(NameCurSheet).CodeModule
ll = .CountOfLines + 1
.InsertLines ll, Str2
End With
NameCurSheet - параметр для этой проедуры. Это CodeName листа, на который будет добавляться метод.
Переменная действительно приведена не верная, но суть от этого не меняетя. До первого попадания в VBA свойство CodeName пустое. После первого попадания - все нормально.