Я пытался адаптировать существующий код и не уверен, куда все должно идти.
Я создал пользовательскую форму, но вместо того, чтобы делать метку для индикатора выполнения, я настроил ее в виде списка, который должендля обновления по завершении других модулей.
У меня есть следующий код в одном модуле:
Sub DoStuff()
Dim ufUpdate As UUpdate
Dim dtTime As Date
'instantiate the userform
Set ufUpdate = New UUpdate
'display a step
ufUpdate.ListBox1.AddItem "Updating Data1…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data2…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data3…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating Data…"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating …"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating …"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating …"
dtTime = Now
Do: DoEvents: Loop Until Now > dtTime + TimeValue("00:00:02")
ufUpdate.ListBox1.AddItem "Updating is COMPLETE!"
Unload ufUpdate
Set ufUpdate = Nothing
End Sub
У меня есть другой модуль для запуска каждого модуля, который соответствует каждой записи списка в приведенном выше коде.Я могу заставить пользовательскую форму открывать и запускать код, описанный выше, но я не могу заставить ее работать одновременно со всеми другими обновлениями, что полностью противоречит цели этого.
Моя главная проблема заключается в следующем: гдеразместить соответствующую кодировку или как изменить вышеприведенную кодировку, чтобы она работала одновременно с модулями обновления данных?
Второй вопрос касается обновления записей списка по мере их заполнения.Как сейчас, список просто создает запись «бла-бла, обновление данных ...», и я хотел бы добавить обновление, чтобы запись списка добавляла «... Готово».в конце каждой записи, когда обновление соответствующих данных завершено.
Я пытался что-то вроде:
ufUpdate.ListBox1.List(0) = "blah blah updating...Done."
в конце модулей кода для каждого модуля данных, а не вставлять егов коде выше.Будет ли это работать или это будет идти куда-то еще?