Я использую индикатор выполнения, чтобы показать пользователю статус работающего макроса, однако, поскольку макрос удаляет строки, он работает в обратном направлении For i = lastrow To 2 Step -1
, что означает, что мой индикатор выполнения работает от 100% до 2 %.Экран хода VBA в обратном направлении Excel
Я только что подсчитал i
, возможно ли, чтобы прогресс прочитывал информацию в обратном направлении при подсчете, так что пользователь, видимо, подсчитывает?
Sub update()
Dim lastRow As Integer, email As String, pctCompl As Single
lastRow = Sheets("Sheet1").Range("C5000").End(xlUp).Row
For i = lastRow To 2 Step -1
email = Trim(Cells(i, 3).Value)
Set c = Sheets("Sheet3").Range("A:A").Find(email, LookIn:=xlValues)
If Not c Is Nothing Then
Cells(i, 1).EntireRow.Delete
End If
pctCompl = i
progress pctCompl
Next i
End Sub
Sub progress(pctCompl As Single)
UserForm1.Text.Caption = pctCompl & "% Completed"
UserForm1.Bar.Width = pctCompl * 2
DoEvents
End Sub
Ok большого спасибо, я думаю о это, но теперь я получаю «Завершено 364%» (или независимо от последнего числа строк). –
Хороший вопрос - я об этом не думал. Я обновил код для вычисления процента. –