Возникла проблема после обновлении кода модуля. Код процедуры обновляется, но при вызове процедуры, воспроизводится её "предыдущая версия", будто ничего не обновилось. Итак Есть книга с модулем tt.
[vba]
Код
Sub test() t = 1 MsgBox t End Sub
[/vba]
На листе Лист1 - кнопка вызывает форму. На форме - Textbox и две кнопки. Кнопка 1 вызывает процедуру test - Результат 1. [vba]
Код
Private Sub CommandButton1_Click() Call test End Sub
[/vba]
Кнопка 2 изменяет код в процедуре test. Значение переменной t заменяем на значение, введенное в Textbox - пусть будет 2.
[vba]
Код
Private Sub CommandButton2_Click() t = "t =" X = "t = " & TextBox1.Text With ThisWorkbook.VBProject.VBComponents("tt").CodeModule N = .ProcBodyLine("test", 0) For i = N To .ProcCountLines("test", 0) + N - 1 If InStr(.Lines(i, 1), t) > 0 Then .ReplaceLine i, X Next End With End Sub
[/vba]
После нажатия на Кнопку2 код изменен - видно по окну VBA. Но повторное нажатие на Кнопку 1 выдает значение - 1. Подскажите почему? Как исправить?
Всем доброго дня!
Возникла проблема после обновлении кода модуля. Код процедуры обновляется, но при вызове процедуры, воспроизводится её "предыдущая версия", будто ничего не обновилось. Итак Есть книга с модулем tt.
[vba]
Код
Sub test() t = 1 MsgBox t End Sub
[/vba]
На листе Лист1 - кнопка вызывает форму. На форме - Textbox и две кнопки. Кнопка 1 вызывает процедуру test - Результат 1. [vba]
Код
Private Sub CommandButton1_Click() Call test End Sub
[/vba]
Кнопка 2 изменяет код в процедуре test. Значение переменной t заменяем на значение, введенное в Textbox - пусть будет 2.
[vba]
Код
Private Sub CommandButton2_Click() t = "t =" X = "t = " & TextBox1.Text With ThisWorkbook.VBProject.VBComponents("tt").CodeModule N = .ProcBodyLine("test", 0) For i = N To .ProcCountLines("test", 0) + N - 1 If InStr(.Lines(i, 1), t) > 0 Then .ReplaceLine i, X Next End With End Sub
[/vba]
После нажатия на Кнопку2 код изменен - видно по окну VBA. Но повторное нажатие на Кнопку 1 выдает значение - 1. Подскажите почему? Как исправить?farscince
Пока открыта форма изменить текст модуля не получится
Спасибо за ответ! Поправил так [vba]
Код
Private Sub CommandButton2_Click() t = "t =" X = "t = " & TextBox1.Text With ThisWorkbook.VBProject.VBComponents("tt").CodeModule N = .ProcBodyLine("test", 0) For i = N To .ProcCountLines("test", 0) + N - 1 If InStr(.Lines(i, 1), t) > 0 Then .ReplaceLine i, X Next End With Unload UserForm1 UserForm1.Show End Sub
[/vba] Но результата нет. Может есть другой способ?
Пока открыта форма изменить текст модуля не получится
Спасибо за ответ! Поправил так [vba]
Код
Private Sub CommandButton2_Click() t = "t =" X = "t = " & TextBox1.Text With ThisWorkbook.VBProject.VBComponents("tt").CodeModule N = .ProcBodyLine("test", 0) For i = N To .ProcCountLines("test", 0) + N - 1 If InStr(.Lines(i, 1), t) > 0 Then .ReplaceLine i, X Next End With Unload UserForm1 UserForm1.Show End Sub
[/vba] Но результата нет. Может есть другой способ?farscince
Сообщение отредактировал farscince - Суббота, 07.10.2017, 11:40