ВБА Цоунтер | Како створити бројач у програму Екцел ВБА? (са примерима)

Екцел ВБА бројач

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

Направимо неки бројач у екцелу ВБА.

Примери Екцел ВБА бројача

Овде можете преузети овај ВБА Цоунтер Екцел образац - ВБА Цоунтер Екцел предложак

Испод су примери бројача у ВБА.

Пример # 1

Претпоставимо да имамо податке као горе за 32 реда. Направићемо ВБА бројач, који ће бројати вредности веће од 50 и још један бројач за бројање вредности мање од 50. На овај начин ћемо створити ВБА код тако да корисник може имати податке за неограничени редови у екцелу.

Да бисте учинили исто, кораци би били:

Обавезно Програмер картица Екцел је видљива. Да би картица била видљива (ако није), следећи кораци:

Кликните на „Датотека“ на траци и изаберите 'Опција' са списка.

Изаберите „Прилагоди траку ’ са листе означите поље за потврду „Програмер“, и кликните на У реду.

Сада Картица „Програмер“ је видљиво.

Уметните командно дугме помоћу тастера „Убаци“ команда доступна у Група „Контроле“ у Картица „Програмер“.

Док притискате тастер АЛТ тастер, креирајте командно дугме помоћу миша. Ако наставимо да притискамо Тастер АЛТ, тада ивице командног дугмета аутоматски иду уз обод ћелија.

Кликните десним тастером миша на командно дугме да бисте отворили контекстуални мени (уверите се „Режим дизајна“ је активиран у супротном нећемо моћи да отворимо контекстуални мени).

Изаберите „Својства“ из менија.

Промените својства командног дугмета, тј. Име, Наслов и Фонт итд.

Поново кликните десним тастером миша и одаберите „Прикажи код“ из контекстуалног менија.

Висуал Басиц Едитор је сада отворен и по подразумеваној вредности је већ створена потпрограм за командно дугме.

Сад ћемо написати код. Прогласићемо 3 променљиве. Један за петљу, један за бројање и један за чување вредности за последњи ред.

Помоћу кода ћемо одабрати ћелију А1, а затим тренутни регион ћелије А1, а затим се спустити до последњег попуњеног реда да бисмо добили број последњег попуњеног реда.

Водићемо а 'за' петља у ВБА за проверу вредности записаних у ћелији А2 до последње попуњене ћелије у колони А. Повећаћемо вредност ‘Бројач’ променљива за 1 ако је вредност већа од 50 и промениће боју фонта ћелије у 'Плави' а ако је вредност мања од 50, тада би боја фонта ћелије била ‘Црвено’.

Након провере и бројања, треба да прикажемо вредности. Да бисмо учинили исто, користићемо „ВБА МсгБок“.

Шифра:

 Привате Суб ЦоунтингЦеллсбиВалуе_Цлицк () Дим и, цоунтер Ас Интегер Дим ластров Ас Лонг ластров = Ранге ("А1"). ЦуррентРегион.Енд (клДовн) .Ров фор и = 2 Ластров Иф Целлс (и, 1) .Валуе> 50 Тада бројач = бројач + 1 ћелија (и, 1) .Фонт.ЦолорИндек = 5 осталих ћелија (и, 1) .Фонт.ЦолорИндек = 3 Крај ако је даље и МсгБок "Постоје" и бројач & "вредности које су веће од 50" & _ вбЦрЛф & "Постоје" & ластров - бројач & "вредности које су мање од 50" Крај Суб 

Деактивирајте „Режим дизајна“ и кликните на „Командно дугме“. Резултат би био следећи.

Пример # 2

Претпоставимо да желимо да креирамо бројач времена користећи екцел ВБА на следећи начин:

Ако кликнемо на 'Почетак' дугме, тајмер се покреће и ако кликнемо на 'Зауставити' дугме, тајмер се зауставља.

Да бисте учинили исто, кораци би били:

Направите овакав формат у екцел листу.

Промените формат ћелије А2 као „Хх: мм: сс“.

Спојите ћелије Ц3 у Г7 помоћу обједињавања и центрирања Екцел-а команда у Група „Поравнање“ у Картица „Почетна“.

Дајте референцу ћелије А2 за управо спојену ћелију, а затим извршите форматирање као да направите стил фонта „Баскервилле“, величина слова на 60 итд.

Направите два командна дугмета 'Почетак' и 'Зауставити' помоћу Команда „Убаци“ доступно у Група „Контроле“ у Картица „Програмер“.

Помоћу Команда „Својства“ доступно у Група „Контроле“ у Картица „Програмер“, промените својства.

Изаберите командно дугме једно по једно и одаберите „Прикажи код“ команда из „Контроле“ група у „Програмер“ таб за писање кода на следећи начин.

Изаберите из падајућег менија одговарајуће командно дугме.

Уметните модул у „ТхисВоркбоок“ десним кликом на „Ова радна свеска“ а затим изаберите „Убаци“ и онда „Модул“.

У модул упишите следећи код.

Шифра:

 Суб старт_тиме () Апплицатион.ОнТиме Нов + ТимеВалуе ("00:00:01"), "нект_момент" Енд Суб Суб енд_тиме () Апплицатион.ОнТиме Нов + ТимеВалуе ("00:00:01"), "нект_момент",, Фалсе Енд Суб Суб нект_момент () Ако су радни листови ("Бројач времена"). Распон ("А2"). Вредност = 0 Затим изађите из подрадних листова ("Бројач времена"). Опсег ("А2"). Вредност = Радни листови ("Време Бројач "). Опсег (" А2 "). Вредност - Временска вредност (" 00:00:01 ") старт_тиме Крај Суб 

Користили смо „на време‘Метода Апликација објект који се користи за покретање поступка у заказано време. Процедура, за коју смо заказали да се изводи, је „Следећи_ тренутак“.

Сачувајте код. Запишите време у А2 ћелију и кликните на 'Почетак' дугме за покретање бројача времена.

Пример # 3

Претпоставимо да имамо списак ученика заједно са оценама које су они оценили. Желимо да избројимо број ученика који су положили и који нису успели.

Да бисмо учинили исто, написаћемо ВБА код.

Кораци би били:

Отворите Висуал Басиц едитор притиском на пречица у екцелу Алт + Ф11 и двапут кликните на ‘Лист3 (Бројање броја ученика)’ да убаците потпрограм заснован на догађају у Схеет3.

Изаберите „Радни лист“ од падајућег менија.

Како ми бирамо „Радни лист“ са листе можемо видети да у суседном падајућем менију постоје разни догађаји. Морамо да бирамо „СелецтионЦханге“ са списка.

Прогласићемо ВБА променљиву ‘Ластров’ за чување броја последњег реда како се листа за студенте може повећати, ‘Проћи’ да чува један број ученика који су положили и ‘Пропасти’ да ускладишти одређени број ученика који нису успели.

Вредност броја последњег реда чуваћемо у ‘Ластров’.

Ми ћемо створити Петља „за“ за бројање на основу услова.

Поставили смо услов ако су укупне оцене веће од 99, па додајте вредност 1 ‘Проћи’ променљиву и додајте 1 вредност у ‘Пропасти’ променљива ако услов не успе.

Последња изјава даје наслов „Резиме“ одважан.

За испис вредности у листу, код би био:

Шифра:

 Привате Суб Ворксхеет_СелецтионЦханге (БиВал Таргет Ас Ранге) Дим ластров Ас Лонг Дим пасс Ас Интегер Дим Фаил Ас Интегер ластров = Ранге ("А1"). ЦуррентРегион.Енд (клДовн) .Ров Фор и = 2 То ластров Иф Целлс (и, 5 )> 99 Затим пасс = пасс + 1 Елсе фаил = фаил + 1 Енд Иф Целлс (1, 7) .Фонт.Болд = Труе Нект и Ранге ("Г1"). Валуе = "Суммари" Ранге ("Г2"). Вредност = "Број ученика који су положили је" & опсег пролазности ("Г3"). Вредност = "Број ученика који нису успели је" & фаил Енд Суб 

Сада кад год дође до промене избора, вредности ће се поново израчунати као доле:

Ствари које треба запамтити

  1. Сачувајте датотеку након писања кода у ВБА са екстензијом .клсм екцел, иначе макро неће функционисати.
  2. Користите петљу „За“ када је већ одлучено да ће се колико пута код у ВБА петљи покретати.