У меня есть Userform, который включает текстовые поля с несколькими форматами. У меня есть Initialize as blank (""), а затем отформатируйте их, используя afterupdate(). Все это прекрасно работает, мои проблемы возникают из-за возможности пропустить пользователя, вводя данные в первую очередь, или просто бесцельно нажав на экран. После ввода значения оно форматирует его правильно, когда вы переходите из текстового поля. Но если вы повторно выбираете текстовое поле, то снова отходите, оно очищает значение. И если вы сделаете это с текстовым полем, которое отформатировано как процент, на самом деле это ошибка с ошибкой несоответствия.Форматирование текстовых полей в форме пользователя
Вот кусочек моего текущего кода:
Private Sub UserForm_Initialize()
ValueAnalysisTextBox.Value = ""
CapRateTextBox.Value = ""
End Sub
Private Sub ValueAnalysisTextBox_AfterUpdate()
ValueAnalysisTextBox.Value = Format(Val(ValueAnalysisTextBox.Value), "$#,###")
End Sub
Private Sub CapRateTextBox_AfterUpdate()
CapRateTextBox.Value = Format(Val(CapRateTextBox.Value)/100, "Percent")
End Sub
Любые мысли о том, чтобы очистить это было бы здорово.
форматирование должно быть сделано во время выполнения кода , Если вы хотите, чтобы пользователь посмотрел, как будет выглядеть конечный результат, я рекомендую использовать ярлыки вместо текстовых полей, чтобы отобразить форматированный текст. – tigeravatar
Если вам нужен форматированный текст, который должен быть в текстовом поле, вам нужно ввести чек в код 'After_Update', чтобы узнать, находится ли значение текстового поля в нужном формате и если да, не вносите никаких изменений. – tigeravatar