Страницы: 1
RSS
Как правильно передать значение из textbox в переменную?
 
Привет любителям экселя :) заранее прошу не кидаться в меня всяким, я только учусь))
В общем, делаю форму-конструктор письма. Поставил галочки напротив того, что должно в нём быть, а результат появился потом в большом поле типа 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
 
Цитата
bertz написал:
чтобы при нажатии кнопки текстбокс понимал, что вводиться в него на этой итерации уже ничего не будет, и ему следует полученные данные внести в переменную?
Без файла-примера могу только посоветовать использовать событие Exit, Или наполнение Label выполнять по кнопке.
===
P.S. Название темы поменял.
 
Цитата
После нажатия "да" открывается текстбокс, но вписанное в него значение с первого раза не закидывается в Label при формировании письма
судя по вашему описанию - и не должно, так как
Цитата
Кнопка собирает конструктор исходя из выбранных пунктов, и выводит собранное письмо в поле Label
 
Вопрос решён. С утра всегда думается лучше :)
Необходимо было убрать все переменные из поля текстбокс и optionbutton и вставить их в, собственно, обновляющую кнопку. Иначе получалось, что переменная записывала в себя самое изначальное значение текстбокса, а оно пустое.
Страницы: 1
Наверх