/ / Индикатор напретка у Екцел ВБА

Индикатор напретка у програму Екцел ВБА

У наставку ћемо погледати програм Екцел ВБА што ствара а индикатор напретка. Ми смо задржали индикатор напретка што је више могуће, али ипак изгледа професионално. Да ли сте спремни?

Кориснички облик који ћемо креирати изгледа овако:

Индикатор напретка у програму Екцел ВБА

Да бисте креирали овај Усерформ, извршите следеће кораке.

1. Отворите Висуал Басиц Едитор. Ако Пројецт Екплорер није видљив, кликните Виев, Пројецт Екплорер.

2. Кликните на Инсерт, Усерформ. Ако се Тоолбок не појави аутоматски, кликните Виев, Тоолбок. Ваш екран треба да буде подешен као доле.

Усерформ Сцреен Сетуп у Екцел ВБА

Овај кориснички модел се састоји само од три контроле. Контрола оквира и две контроле етикета.

3. Додајте контролу рама. То можете урадити тако што ћете кликнути на оквир из алатке. Затим можете превући контролу оквира на Усерформ. Морате промијенити неке особине ове контроле кадра. Десни клик миша на контролу кадра, а затим кликните на Пропертиес (Својства). Испразните поље Цаптион, подесите Висина на 24 и Ширина на 204.

4. Додајте прву контролу етикета и ставите је у оквир контроле. Десни клик миша на контролу етикета, а затим кликните на Пропертиес (Својства). Промените име на Бар, БацкЦолор то Хигхлигхт, испразните поље Цаптион, подесите Висина на 20 и ширину на 10.

5. Додајте другу контролу етикета и поставите је изнад оквира контроле. Десни клик миша на контролу етикета, а затим кликните на Пропертиес (Својства). Промените име у Текст и промените назив на "0% завршено".

6. Промените ознаку Усерформ то Прогресс Индикатор.

Када ово буде завршено, резултат мора бити у складу са приказом корисничког образца који је приказан раније.

7. Поставите командно дугме на свој радни лист и додајте следећу линију кода да бисте приказали Усерформ:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ако сте пролазили кроз друге Усерформепримјери на овој веб локацији, знате да је ово вријеме за креирање под УсерФорм_Инитиализе. Овај подразумевани рад се аутоматски покреће када се Усерформ учита. Стога, када користите методу Схов за Усерформ, код ће се аутоматски извршити. Уместо Суб УсерФорм_Инитиализе, креирамо суб УсерФорм_Ацтивате. Коришћењем ове подкатегорије, Екцел ВБА може ажурирати Усерформ да покаже напредак макроа.

8. Отворите Висуал Басиц Едитор.

9. У Пројецт Екплорер-у кликните десним тастером миша на УсерФорм1 и кликните на Виев Цоде.

10. Из падајуће листе изаберите ставку Усерформ. Изаберите Активирај са десне падајуће листе.

11. Додајте следећу линију кода:

Private Sub UserForm_Activate()

code

End Sub

Објашњење: овај подај позове још један под-назив који ћемо креирати за минут. Збуњен? Можете проћи кроз нашу функцију и под поглавље како бисте сазнали више о субс. Ако сте у журби, само извршите следеће кораке и бићете у реду.

12. Поставите под-именовани код у модул (У Висуал Басиц Едитор, кликните Инсерт, Модуле). Ово је само пример. Ово је место за додавање сопственог кода када желите да користите овај индикатор напретка за свој макро. Код изгледа овако.

Sub code()

Dim i As Integer, j As Integer, pctCompl As Single

Sheet1.Cells.Clear

For i = 1 To 100
    For j = 1 To 1000
        Cells(i, 1).Value = j
    Next j
    pctCompl = i
    progress pctCompl
Next i

End Sub

Објашњење: прво, иницијализирамо неке варијабле. Затим, очистимо лист1. Користимо двоструку петљу да покажемо вредности од 1 до 1000 у првих 100 редова радног листа. Ово ће задржати Екцел ВБА за неко вријеме и даје нам прилику да видимо напредак макроа. Варијабла пцтЦомпл (скраћеница за проценатЦомплетед) мјери напредак макроа. Напокон, назовемо још један под-називи напредак и проследимо вредност променљиве пцтЦомпл да ажурирамо Усерформ. На овај начин видимо напредак макроа!

13. Додајте још један напред под називом. Код изгледа овако:

Sub progress(pctCompl As Single)

UserForm1.Text.Caption = pctCompl & "% Completed"
UserForm1.Bar.Width = pctCompl * 2

DoEvents

End Sub

Објашњење: прва линија линије мијења наслов првог контролера ознаке. Друга линија кода мења ширину друге контролне ознаке. Додајте ДоЕвентс да бисте ажурирали Усерформ.

14. Изађите из Висуал Басиц Едитор-а и кликните на командно дугме на листу:

Резултат:

Резултати показатеља прогреса

Белешка: за овај макро, користили смо варијаблу и да измеримо напредак. На примјер, у реду 11, 10% је завршено. Ово може бити различито за ваш макро. Техника преношења вредности варијабле пцтЦомпл на подмрећу за ажурирање Усерформа остаје иста.

Такође прочитајте: