Привет любителям экселя заранее прошу не кидаться в меня всяким, я только учусь))
В общем, делаю форму-конструктор письма. Поставил галочки напротив того, что должно в нём быть, а результат появился потом в большом поле типа Label.
Последовательность действий такая:
Пользователь в 5 пунктах выбирает из двух вариантов;
В двух пунктах при нажатии "Да" появляется текстбокс, куда он должен вписать данные (например, в вопросе "Есть ли временные рамки?" он выбирает "Да", появляется текстбокс, куда нужно вписать, например, "30 августа");
Нажимает кнопку. Кнопка собирает конструктор исходя из выбранных пунктов, и выводит собранное письмо в поле Label;
Пользователь может поменять выбранные пункты, также нажать кнопку, и она обновит конструктор снова;
Дальше пока не делал))
Суть проблемы:
После нажатия "да" открывается текстбокс, но вписанное в него значение с первого раза не закидывается в Label при формировании письма. Чтобы начало отображаться нужно переключить на "нет", затем снова на "да". Как я понимаю, это обновляет текстбокс из-за первой строчки TextBox_Change. Вопрос: Можно ли это как-то обойти? Например, чтобы при нажатии кнопки текстбокс понимал, что вводиться в него на этой итерации уже ничего не будет, и ему следует полученные данные внести в переменную?
Все переменные объявлены как глобальные в самом модуле.
В коде, если это нужно, нажатие на кнопку, введение в текстбокс и добавление этого в основное сообщение выглядит так:
В общем, делаю форму-конструктор письма. Поставил галочки напротив того, что должно в нём быть, а результат появился потом в большом поле типа Label.
Последовательность действий такая:
Пользователь в 5 пунктах выбирает из двух вариантов;
В двух пунктах при нажатии "Да" появляется текстбокс, куда он должен вписать данные (например, в вопросе "Есть ли временные рамки?" он выбирает "Да", появляется текстбокс, куда нужно вписать, например, "30 августа");
Нажимает кнопку. Кнопка собирает конструктор исходя из выбранных пунктов, и выводит собранное письмо в поле Label;
Пользователь может поменять выбранные пункты, также нажать кнопку, и она обновит конструктор снова;
Дальше пока не делал))
Суть проблемы:
После нажатия "да" открывается текстбокс, но вписанное в него значение с первого раза не закидывается в Label при формировании письма. Чтобы начало отображаться нужно переключить на "нет", затем снова на "да". Как я понимаю, это обновляет текстбокс из-за первой строчки TextBox_Change. Вопрос: Можно ли это как-то обойти? Например, чтобы при нажатии кнопки текстбокс понимал, что вводиться в него на этой итерации уже ничего не будет, и ему следует полученные данные внести в переменную?
Все переменные объявлены как глобальные в самом модуле.
В коде, если это нужно, нажатие на кнопку, введение в текстбокс и добавление этого в основное сообщение выглядит так:
Код |
---|
Private Sub TimeYES_Click() sTime="" Timetext.Visible=True Timetext.Enabled=True sTimeType="Yes" Timetext.Setfocus sTime="Срок, устанавливаемый организацией - до " & sdate & " включительно" End sub Private sub Timetext_Change() sdate=TimeText.Value End sub Private sub refrash_click() ... If sTimeType="Yes" Then MainMsg=MainMsg&vbcrlf&sTime End if ... Label=MainMsg End sub |