Доброго времени суток, добрый люди!
Всем хорошего настроения, здоровья и благополучия!
Хотел просить помощи относительно понимания работы статус/прогресс-бара.
Смотрел тему
как работает статус-бар.
Искал по форуму и нашел, что
прогресс-бар можно применить к циклам, но у меня в скрипте циклов почти нет; может быть есть в отдельном "кусочке", но он влияет только на небольшую часть документа.
В итоге, использовал форму UserForm из файла примера (Tips_ShowProgressBar.xls) и все, что добился - появление формы с 0% в начале работы скрипта и резкий переход в 100% по окончанию его работы.
Мой скрипт - это т.н. "сборник" кусочков, где есть как записанные макрорекордером простые обработки (скопировать это отсюда туда, применить к скопированному шрифт и т.д.), так и сложные обработки, собранные с просторов интернета, в т.ч. и с данного форума (
одна из них). Каждый кусочек "выделен в блок" (имеет закомментированное примечание), и хотелось бы так и оставить, поскольку работает как надо.
Вот, например, кусочек:
' Очистка
Sheets("2_handler").Select
Columns("E:F").Select
Selection.Delete Shift:=xlToLeft
Range("Таблица1[[Статьи и ниже ФИО]:[Номера]]").Select
Selection.ClearContents
Sheets("1-import").Select
Columns("A:F").Select
Selection.Delete Shift:=xlToLeft
' Удалить все листы с результатами кроме "L1" and "L2"
Dim i As Long
Application.DisplayAlerts = False
For i = Sheets.Count To 1 Step -1
If Sheets(i).Name <> "L1" Then
If Sheets(i).Name <> "L2" Then
Sheets(i).Delete
End If
End If
Next
Application.DisplayAlerts = True
'Путь до файла запроса .iqy
IQYFile = "D:\link.iqy"
With ActiveSheet.QueryTables.Add(Connection:= _
"FINDER;" & IQYFile, Destination:=Range("A1"))
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SaveData = True
End With
И вот хотелось бы, чтобы после каждого такого "кусочка" в форме выполнения скрипта отображался ход в процентах.
Или не в форме, а, например, в нижней части листа - "квадраты и проценты" (из листа примера Tips_ShowProgressBar.xls).
Ну или было хоть какое-то оповещение о ходе выполнения кроме банальных
Application.StatusBar = "Ждите, обрабатываю запрос..."
в начале и
MsgBox "Готово"
в конце.
Буду рад любой подсказке/помощи/доброму совету.