Страницы: 1
RSS
Как в свой макрос добавить помощь прогресс-бара
 
Добрый день, есть макрос.
Код
Option Explicit
Sub calcValues()
  Dim arr() As Variant
  Dim res() As Integer
  Dim s As String
    
  Dim i As Integer
  Dim j As Integer
  Dim iMax As Integer
  Dim sMax As String
  Dim iVal As Integer
  Dim iValCurr As Integer
  Dim k As Integer
  Dim p As Integer
  Dim n As Integer
  Dim m As Integer
  
  k = Cells(1, 4).Value
  iMax = 0
  arr = Range(Cells(2, 1), Cells(19, 1))
  n = UBound(arr, 1)
  ReDim res(1 To k)
  For i = 1 To k
    res(i) = i
  Next
  p = k
  Do While p >= 1
'//---
      iVal = 0
      For m = 1 To Len(arr(res(1), 1))
        iValCurr = 1
        For j = LBound(res) To UBound(res) - 1
          If StrComp(Mid(arr(res(j), 1), m, 1), Mid(arr(res(j + 1), 1), m, 1)) <> 0 Then
            iValCurr = 0
            Exit For
          End If
        Next j
        iVal = iVal + iValCurr
      Next m
      If iMax < iVal Then
        s = ""
        For j = LBound(res) To UBound(res)
          s = s & "," & CStr(res(j))
        Next j
        sMax = Right(s, Len(s) - 1)
        iMax = iVal
      End If
'//===
    If res(k) = n Then
       p = p - 1
    Else
       p = k
    End If
    If p >= 1 Then
     For i = k To p Step -1
         res(i) = res(p) + i - p + 1
     Next
    End If
  Loop
  
  sMax = "Строки " & sMax & " совпадений - " & iMax
  MsgBox sMax
End Sub
когда я ввожу изначально большие данные для сравнения, я не вижу сколько времени займет обработка макроса, но есть Визуализация работы макроса при помощи прогресс-бара
Код
Sub ПростейшийПримерИспользованияПрогрессБара()
    Dim pi As New ProgressIndicator    ' создаём новый прогресс-бар
    pi.Show "Подождите, работает макрос"    ' отбражаем индикатор

    ' здесь код вашего макроса

    pi.Hide    ' закрываем индикатор
End Sub

Скажите пожалуйста как правильно объединить эти два макроса?
Изменено: vikttur - 05.10.2021 14:04:47
 
Добрый день!
Там где вы брали этот код написано:
Цитата
Для использования этого индикатора перетащите из файла-примера в свой файл модуль класса ProgressIndicator и форму F_Progress
Изменено: Андрей_26 - 05.10.2021 11:42:02
Страницы: 1
Наверх