Страницы: 1
RSS
Progress bar заполнения Ворд документа
 
Приветствую знатоки excel! Проблема в следующем совершенно не могу понять как работает прогресс бар и как его подключить...
Есть макрос который заполняет таблицы Ворд данными из екселя по вкладкам
Код
Private Sub zapolnit()
    nm = TEST.DOC
    gd = ActiveWorkbook.Sheets(1).Range("A1")
    pr = ActiveWorkbook.Sheets(1).Range("B1")

    Set objWord = CreateObject("word.application")
    objWord.Visible = True
    Set objDoc = objWord.Documents.Open(ActiveWorkbook.Path & nm)
    
    Call telo
    
    objDoc.SaveAs2 Filename:=ActiveWorkbook.Path & "\Rezult\" & Left(nm, 5) & "_" & Format(gd, "00") & Format(pr, "00") & ".docx"
    objWord.Quit
End Sub
Private Sub telo()

For bMi = 1 To objDoc.Bookmarks.Count
        If (Len(objDoc.Bookmarks(bMi).Name) - Len(Replace(objDoc.Bookmarks(bMi).Name, "_", ""))) <> 4 Then GoTo NxtBM
        tmpBM = Split(objDoc.Bookmarks(bMi).Name, "_")
        If IsSh(tmpBM(LBound(tmpBM)) & "") = False Then GoTo NxtBM
        Set sh1 = ThisWorkbook.Sheets(tmpBM(LBound(tmpBM)) & "")
        rOw1 = Val(tmpBM(LBound(tmpBM) + 1))
        rOw2 = Val(tmpBM(LBound(tmpBM) + 2))
        cOl1 = Val(tmpBM(LBound(tmpBM) + 3))
        cOl2 = Val(tmpBM(LBound(tmpBM) + 4))
        objDoc.Bookmarks(bMi).Range.Select
        For i = rOw1 To rOw2
            Set r = objWord.Selection.Range
            For j = cOl1 To cOl2
                If Len(sh1.Cells(i, j).Value) = 0 Then
                    objWord.Selection.TypeText Text:="0"
                Else
                    If sh1.Cells(i, j).Value = 0 Then
                        objWord.Selection.TypeText Text:=" "
                    Else
                        objWord.Selection.TypeText Text:=CStr(sh1.Cells(i, j).Value)
                    End If
                End If
                If j <> cOl2 Then objWord.Selection.MoveRight unit:=wdCell
            Next j
            r.Select
            If i <> rOw2 Then objWord.Selection.MoveDown 'unit:=wdCell
        Next i

NxtBM:
    Next bMi
For bMi = 1 To objDoc.Bookmarks.Count
        If (Len(objDoc.Bookmarks(bMi).Name) - Len(Replace(objDoc.Bookmarks(bMi).Name, "_", ""))) <> 1 Then GoTo NxtgBM
        tmpBM = Split(objDoc.Bookmarks(bMi).Name, "_")
            If Mid(tmpBM(0), 1, 3) = "god" Then
                If tmpBM(0) = "god1" Then
                    objDoc.Bookmarks(bMi).Range.Select
                    objWord.Selection = Mid(Format(gd, "00"), 1, 1)
                        GoTo NxtgBM
                Else: objDoc.Bookmarks(bMi).Range.Select
                    objWord.Selection = Mid(Format(gd, "00"), 2, 2)
                        GoTo NxtgBM
                End If
            ElseIf Mid(tmpBM(0), 1, 3) = "mon" Then
                If tmpBM(0) = "mon1" Then
                    objDoc.Bookmarks(bMi).Range.Select
                    objWord.Selection = Mid(Format(pr, "00"), 1, 1)
                        GoTo NxtgBM
                Else: objDoc.Bookmarks(bMi).Range.Select
                    objWord.Selection = Mid(Format(pr, "00"), 2, 2)
                        GoTo NxtgBM
                End If
            End If
            
                        
NxtgBM:
    Next bMi
End Sub
Function IsSh(shN As String) As Boolean
Dim tmpobj As Worksheet
IsSh = False
On Error GoTo FIN
Set tmpobj = ThisWorkbook.Sheets(shN)
IsSh = True
FIN:
End Function
Так вот искал я долго и нашел кучи вариантов готовых решений баров но не один у меня не получилось подстроить под себя!!!

Хелп товарищи!!!
Изменено: Lilzen - 07.06.2018 15:06:33
 
А зачем его подключать? В качестве украшения?
код несложный, отрабатывать должен достаточно быстро

PS: там, где вы взяли этот файл, есть и описание работы прогресс-бара
http://excelvba.ru/code/tools/ProgressIndicator
Страницы: 1
Читают тему
Наверх