Excel - VBA: Userform.Label не изменится

Моя программа VBA обрабатывает некоторые операции над вводом, введенным пользователем, и в конечном итоге возвращает результат.

В какой-то момент я хочу, чтобы какая-то пользовательская форма отображалась и «настраивала» исследование. Например, если пользователь ввел штат и город, которые не подходят, появится сообщение «Вы имели в виду город в штат?». Затем, нажав «да», модификация будет учтена, а «нет» ничего не изменит.

Я пробовал это, как найдено в некоторых учебниках:

city = sMain.Range("J12").Value
province = sMain.Range("J6").Value
provinceSugg = sCurrent.Cells(p, db_column).Value

If province = "" And city <> "" Then
UserForm2.Show
UserForm2.Label1 = "Do you mean : " & city & " in " & provinceSugg
Else
End If

К сожалению, это вообще не работает, какой бы текст я ни писал для Label1 и какой бы способ написания я ни использовал (Label1.Caption = , Userform2.Label1.Caption = , Label1 = и т. д.), все равно никаких изменений.

Спасибо, что помогли мне исправить это!


person Phalanx    schedule 25.06.2013    source источник


Ответы (2)


Установите заголовок перед отображением формы... вот так:

city = sMain.Range("J12").Value
province = sMain.Range("J6").Value
provinceSugg = sCurrent.Cells(p, db_column).Value

If province = "" And city <> "" Then
UserForm2.Label1 = "Do you mean : " & city & " in " & provinceSugg
UserForm2.Show
Else
End If
person sous2817    schedule 25.06.2013

Используйте vbModeless..

If province = "" And city <> "" Then
  UserForm2.Show vbModeless
  UserForm2.Label1 = "Do you mean : " & city & " in " & provinceSugg
Else

End If
person matzone    schedule 25.06.2013
comment
спасибо за ваш ответ, решение sous2817 также работает и было дано первым, поэтому я принял его, но я также ценю ваше решение. - person Phalanx; 25.06.2013
comment
@Phalanx. Это нормально .. но вы должны знать, что с помощью «vbModeless» вы можете изменить заголовок метки .. снова и снова .. : P - person matzone; 25.06.2013