Обратный порядок отображения в Label переменных

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

Форма представляет Label и одну кнопку
Код формы:

Код: Выделить всё

Private Sub CommandButton1_Click()
Unload Continuation
End Sub

Код: Выделить всё

Private Sub UserForm_Initialize()
Continuation.Label1 = ContinuationTextLabel
End Sub
Код макроса:

Код: Выделить всё

Public ContinuationTextLabel As String

Код: Выделить всё

Sub main()
ContinuationTextLabel = "Действие 1"
Continuation.Show
While Continuation.Visible
     DoEvents
Wend
ContinuationTextLabel = "Действие 2"
Continuation.Show
While Continuation.Visible
     DoEvents
Wend
End Sub
У меня в Label сначала пишет "Действие 2", а затем "Действие 1". Никто не сталкивался с таким?
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

Busine2009 писал(а):Форма представляет Label и одну кнопку
Код формы:

Код: Выделить всё

Private Sub CommandButton1_Click()
Unload Continuation
End Sub

Код: Выделить всё

Private Sub UserForm_Initialize()
Continuation.Label1 = ContinuationTextLabel
End Sub
Код макроса:

Код: Выделить всё

Public ContinuationTextLabel As String

Код: Выделить всё

Sub main()
ContinuationTextLabel = "Действие 1"
Continuation.Show
While Continuation.Visible
     DoEvents
Wend
ContinuationTextLabel = "Действие 2"
Continuation.Show
While Continuation.Visible
     DoEvents
Wend
End Sub
У меня в Label сначала пишет "Действие 2", а затем "Действие 1". Никто не сталкивался с таким?
Пиши проще, легче поймёщь, чего написал.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

Код: Выделить всё

Пиши проще, легче поймёщь, чего написал. 
Простите, что?
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

Ты написал такой сложный код, что я в нём не с мог разобраться, хотя элементарно, быстро и без ошибок пишу проги, решающие боле сложные задачи, но при этом код получается проще. Так вот, всякий раз, как появляется избыточная сложность, логично ждать кучи ошибок.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

Кнопка:

Код: Выделить всё

Private Sub CommandButton1_Click()
Unload Continuation
End Sub
Continuation - имя формы, по которому я буду обращаться к ней.
Unload - при нажатии кнопки, форма будет закрываться. (Форма - это диалоговое окно. В моём случае представляет собой прямоугольник с кнопкой и поясняющей надписью.)
На форме есть Label (в яндексе набери Label VBA). При появлении формы в Label будет помещаться информация из переменной под названием ContinuationTextLabel.

Код: Выделить всё

Private Sub UserForm_Initialize()
Continuation.Label1 = ContinuationTextLabel
End Sub
Объявляю переменную, чтобы было её видно в проекте (есть ещё переменная в процедуре и модуле)

Код: Выделить всё

Public ContinuationTextLabel As String
Код макроса пошёл:
ContinuationTextLabel - создаём переменную ContinuationTextLabel и помещаем в неё текст Действие 1.
While Continuation.Visible
DoEvents
Wend - означает, пока форма видна, загружаем компьютер, чтобы он сдох.
Форма уже не видна? Тогда мы идем к вам (шутка). Тогда мы идём вот сюда
ContinuationTextLabel = "Действие 2"
Continuation.Show
While Continuation.Visible
DoEvents
Wend
В перменную ContinuationTextLabel - помещаем словосочетание Действие 2.
Continuation.Show - показываем на мониторе диалоговое окно Continuation.
While Continuation.Visible
DoEvents
Wend - насилуем компьютерные ресурсы, пока форма видна на мониторе.
End Sub - конец

atavin-ta

Какой ты нах..й developer
Ответить