Преглед садржаја
Када имамо велики скуп података у Екцел радној свесци, понекад је згодно ако можемо да прођемо кроз редове да бисмо издвојили конкретне резултате које желимо да добијемо. Примена ВБА је најефикаснији, најбржи и најбезбеднији метод за покретање било које операције у Екцел-у. У овом чланку ћемо вам показати 11 различитих метода како да прегледате редове табеле у Екцел-у помоћу ВБА макроа .
Преузмите радну свеску
Овде можете преузети бесплатну Екцел радну свеску за вежбање.
Прођите кроз редове табеле помоћу ВБА.клсм
11 метода са ВБА за петљу кроз редове табеле у Екцел-у
У наставку овог одељка, научићете како да прегледате редове табеле са 11 различитих метода, као што је петља кроз редове до празне ћелије, петља кроз редове док се не пронађе одређена вредност, петља кроз редове и бојење одређене ћелије итд. помоћу ВБА макроа у Екцел-у.
Изнад је пример скупа података који ће овај чланак пратити да би описао методе.
1. Уградите ВБА за петљу кроз сваку ћелију у сваком реду табеле према референтном броју ћелије
Ако желите да прођете кроз сваку ћелију у сваком реду табеле у вашем Екцел радном листу и добијте референтни број ћелије као повратну вредност , а затим следите кораке описане у наставку.
Кораци:
- На почетку , притисните Алт + Ф11 на тастатури или идитепроменљива.
3684
Овај део кода је овде за петљу кроз редове од 1 до 15. Ако пронађе специфичну реч „ Едге ” онда боји ћелију у којој се налази та реч. Наставља то да ради све док не заврши скенирање свих података од редова 1 до 15 у потрази за речју.
Прочитајте више: Како користити ВЛООКУП табеларни низ заснован на Вредност ћелије у Екцел-у
Слична очитавања
- Да ли функција ТАБЛЕ постоји у Екцел-у?
- Како претворити табелу у листу у Екцел-у (3 брза начина)
- Претворити опсег у табелу у Екцел-у (5 једноставних метода)
- Ефикасно користите формулу у Екцел табели (са 4 примера)
- Назив Екцел табеле: Све што треба да знате
7. Имплементирајте ВБА за петљу кроз сваки ред и обојите сваки непарни ред у Екцел-у
Из претходног одељка смо научили како да обојимо ћелију која носи одређену вредност. У овом одељку ћемо научити како да прегледамо сваки ред табеле и обојимо сваки непарни ред са ВБА макроом у Екцел-у.
Кораци за извршавање процеса су описани у наставку.
Кораци:
- Као што је приказано раније, отворите Висуал Басиц Едитор из Програмер таб и Инсерт а Модуле у прозор кода.
- Затим, копирајте следећи код и пасте га у прозор кода.
2923
Ваш код је сада спреман за покретање.
- Сада, Покрените макро и погледајте следећу слику да видите излаз.
Сви непарни редови су обојени након петље кроз све редове који се налазе у табели радног листа.
Објашњење ВБА кода
7868
Дефинишите променљиву.
1859
Дефинишите опсег са којим ћемо радити.
6834
Овај део кода се односи на итерацију кроз све редове, почевши од следећег реда тренутног реда, Б4 . Ако је мод дељења бројева редова са 2 једнак враћеном броју реда сачуваном у целобројном типу, онда овај код боји све редове који су екстраховани прорачуном помоћу индекса боја који је дат у коду. Наставља се да се креће кроз све редове док не дође до краја опсега.
8. Имплементирајте ВБА за петљу кроз редове и обојите сваки парни ред у Екцел-у
У претходном одељку научили смо како да обојимо сваки непарни ред табеле. У овом одељку ћемо научити како да прегледамо сваки ред табеле и обојимо сваки паран ред помоћу ВБА макроа у Екцел-у.
Кораци за извршавање процеса су размотрени у наставку.
Кораци:
- Прво, отворите Висуал Басиц Едитор са картице Програмер и Инсерт а Модуле у прозору кода.
- Затим, копирајте следећи код и налепите га у прозор кода.
6613
Ваш код је сада спреман запокрените.
- Следеће, Покрените макро и погледајте следећу слику да бисте видели резултат.
Сви парни редови су обојени након петље кроз све редове који се налазе у табели радног листа.
Објашњење ВБА кода
3311
Дефинишите променљиву.
9539
Дефинишите опсег са којим ћемо радити.
7859
Овај део кода почиње да се понавља после три реда из тренутног реда, Б4 . Прво га боји, а затим повећава број редова за 2 и наставља да га боји све док не дође до последњег реда скупа података.
9. Примените макро за понављање кроз редове до празне ћелије у Екцел-у
Ако желите да ваш код функционише као да ће петљати кроз све редове табеле и зауставити се када стигне до празне ћелије , онда је овај одељак за вас. Тај задатак можете извршити и помоћу ФОР петље и До-до петље у програму Екцел ВБА .
9.1. Са ФОР Лооп
Кораци за прелазак кроз редове у табели све док се не прикаже празна ћелија са ФОР Лооп у ВБА Екцел-у.
Кораци:
- Прво, отворите Висуал Басиц Едитор са картице Девелопер и Инсерт а Модуле у прозору кода.
- Након тога, копирајте следећи код и налепите га у прозор кода.
1614
Ваш код је сада спреман за покретање.
- Онда, Покрените макро и резултат је приказан у гиф-у испод.
Након покретања макроа, почео је да се креће кроз све редове у табели и када је стигао до празне ћелије, ћелије Б8 , зауставио је итерацију .
Објашњење ВБА кода
1961
Дефинишите променљиву.
8666
Искључите догађај ажурирања екрана.
8332
Сачувајте све редове почевши од Ћелије Б4 до последњег.
6255
Изаберите ћелију Б4 .
2310
Овај део кода почиње да се креће кроз све редове. Када пронађе празну ћелију у реду онда је бира и наставља да скенира редове док не дође до краја.
9567
Укључите догађај ажурирања екрана.
9.2. Са До-Унтил петљом
Кораци за петља кроз редове све док празна ћелија са До-До петље у ВБА су дати испод.
Кораци:
- Прво, отворите Висуал Басиц Едитор са картице Програмер и Инсерт а Модул у прозору кода.
- Затим, копирајте следећи код и налепите га у прозор кода.
9900
Ваш код је сада спреман за покретање.
- Касније, Покрени макро. Резултат је приказан у следећем гиф-у.
Након покретања макроа, почео је да се креће кроз све редове у табели и једном стигао је до празне ћелије, ћелије Б8 , зауставио је итерацију .
ВБА кодОбјашњење
3392
Изаберите ћелију од које ћемо радити.
6954
Почиње и наставља да петља све док се не пронађе празна ћелија.
6822
Када је празна ћелија пронађено у реду, а затим га изаберите и зауставите итерацију.
10. ВБА макро за понављање кроз редове до више празних ћелија у Екцел-у
У претходном одељку научили сте како да зауставите петљу када се пронађе празна ћелија. Али шта ако не желите да зауставите итерацију док се не пронађе више празних ћелија уместо само једне.
Кораци за прелазак кроз редове док се више празних ћелија не пронађе у табели са ВБА Екцел су приказани испод.
Кораци:
- Прво, отворите Висуал Басиц Едитор из Картица Девелопер и Инсерт а Модуле у прозор кода.
- Затим, копирајте следећи код и налепите у прозор кода.
For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With
Ваш код је сада спреман за покретање.
- Сада, Покрените макро и погледајте следећи гиф за излаз.
Након покретања макроа, није стао на прва празна ћелија, ћелија Б8 . Престао је када је пронашао две узастопне празне ћелије на ћелији Б16 .
Објашњење ВБА кода
3164
Изаберите ћелију од којих ћемо радити.
2468
Почиње и наставља са петљом док се не пронађу две узастопне празне ћелије.
9178
Када се пронађу две узастопне празне ћелије, ондаизаберите га и зауставите итерацију.
11. Уградите ВБА за петљу кроз редове спајањем свих колона до празних у Екцел-у
Овај одељак ће вам показати како да пређете кроз све редове у табели и спојите све колоне до празне ћелије се налази са ВБА Екцел-ом.
Хајде да научимо како то да урадимо са ВБА макроом у Екцел-у.
Кораци:
- Прво, отворите Висуал Басиц Едитор са картице Програмер и Инсерт а Модуле у прозору кода.
- Затим, копирајте следећи код и налепите га у прозор кода.
2821
Ваш код је сада спреман за покретање.
- Касније, Покрените макро и погледајте следећи гиф за резултат.
Као што можете видети из горњег гиф-а је да постоји искачући прозор МсгБок који вам приказује конкатенисану вредност свих колона које се налазе у сваком ров из табеле вашег Екцел радног листа. Али је престао када је стигао до празне ћелије .
Објашњење ВБА кода
8382
Дефинишите променљиве.
8432
Подесите име листа са којим ћемо радити (“ ЦонцатенатингАллЦолУнтилБланк ” је назив листа у радној свесци).
6315
Дефинишите опсег са којим ћемо радити.
4403
Овај део кода почиње петљу са низом. Наставља да се креће све док не врати највећи индекс низа и доњу границупрва димензија. Затим улази у итерацију издвајања доње границе друге димензије. Након тога, он прослеђује све екстраховане вредности у променљивој иРесулт тако што их спаја и баца резултат у МсгБок. То наставља да ради све док не пронађе празну ћелију.
Закључак
Да закључимо, овај чланак вам је показао 11 ефикасних метода како да прегледате редове табеле у Екцел-у са ВБА макроом . Надам се да вам је овај чланак био од велике користи. Слободно постављајте сва питања у вези са темом.
на картицу Програмер -&гт; Висуал Басицда отворите Висуал Басиц Едитор.
- Следеће, у искачућем прозору кода, из трака менија, кликните на Уметни -&гт; Модул .
- Затим, копирајте следећи код и залепите га у код прозор.
5876
Ваш код је сада спреман за покретање.
- Сада притисните Ф5 на свом тастатуру или на траци менија изаберите Покрени -&гт; Покрените Суб/УсерФорм . Такође можете само да кликнете на малу икону Плаи на траци подменија да покренете макро.
- Или да визуелно сведочите и упоредите скуп података и резултат, можете сачувати код и вратити се на радни лист од интереса.
- Одатле можете кликнути на Макрои са картице Програмер , изаберите име макроа, а затим кликните на Покрени .
Након успешног извршења кода, погледајте горњи гиф да бисте видели резултат. Појавиће се искачући МсгБок који ће вам показати референтни број ћелије сваке ћелије из сваког реда из табеле у вашем Екцел листу.
Објашњење ВБА кода
1873
Да бисте добили број последњег реда у табели претраживањем колоне Б.
3333
Подесите ред број 4, одакле почињу наши подаци.
6674
За петљу од првог реда.
8501
Подесите колону број 2, одакле почињу наши подаци.
9780
Почните да петљате кроз редове да бисте добили последњиброј колоне проценом тренутног реда до последњег реда.
6250
Повећајте петљу колоне од првог до последњег реда.
9853
Овај део кода ради на обради, повећавајући се након сваког итерацију и прикажи резултат кода.
Прочитајте више: Како аутоматски додати нови ред у Екцел табелу
2 . Имплементирајте ВБА за петљу кроз сваку ћелију у сваком реду по вредности
Ако желите да прођете кроз сваку ћелију у сваком реду табеле и избаците вредност која се налази у ћелијама као повратну вредност , онда ће вам овај одељак помоћи да схватите како то да урадите са ВБА Екцел-ом.
То можете да урадите са ЛистОбјецт и са ДатаБодиРанге својство ВБА . Показаћемо вам макро код са објектом и својством.
2.1. Са ЛистОбјецт
Кораци за прелазак кроз сваку ћелију у сваком реду табеле по вредност ћелије са ЛистОбјецт у ВБА Екцел-у су дати у наставку.
Кораци:
- На исти начин као и раније, отворите Висуал Басиц Едитор са картице Програмер и Уметните Модуле у прозор кода.
- Затим, у прозору кода, копирајте следећи код и налепите то.
4536
Ваш код је сада спреман за покретање.
- Након тога, Покрените макро као што смо вам показали у горњем одељку. Резултат је приказан на гиф-уиспод.
Појавиће се искачући прозор МсгБок који вам приказује вредност коју носи свака ћелија из сваког реда из табеле у вашем Екцел листу.
Објашњење ВБА кода
1437
Дефинишите променљиве.
1375
Овај део кода прво почиње да се креће кроз редове у табели (“ ТблСтудентс ” је назив наше табеле). Затим уноси колоне за сваки ред. Након тога, проследите вредност ћелије у МсгБок. Затим идите на следећу колону. Након завршетка итерације кроз све колоне једног реда, прелази се на следећи ред и наставља процес итерације до последњег реда.
2.2. Са својством ДатаБодиРанге
Да бисте били прецизнији са екстрахованим подацима из табеле, можете користити својство ДатаБодиРанге ЛистОбјецт . Својство ДатаБодиРанге ће вам дати резултат који садржи опсег са листе између реда заглавља и реда за уметање.
Кораци о томе како пролазите кроз сваку ћелију у сваком реду табеле по вредности ћелије са ДатаБодиРанге у ВБА Екцел-у су дати испод.
Кораци:
- Као што је приказано пре тога отворите Висуал Басиц Едитор са картице Развојник и Убаци Модул у прозор кода.
- Затим , копирајте следећи код и налепите га у прозор кода.
8415
Ваш код је сада спреман за покретање.
- Касније, Покрените макро и погледајте следећи гиф да видите излаз.
Појавиће се искачући МсгБок приказује вредност коју носи свака ћелија из сваког реда из табеле у вашем Екцел листу.
Објашњење ВБА кода
7859
Дефинишите променљиву.
7717
Овај део кода прво почиње да се креће кроз редове у табели (“ ТблСтднт ” је назив наше табеле) и враћа опсег вредности изузев ред заглавља табеле. Затим проследите вредност опсега у МсгБок. Затим иде у следећи ред да издвоји опсег и наставља процес итерације до последњег реда.
3. Примените ВБА макро за понављање кроз редове спајањем колона у Екцел-у
Овај одељак ће показати како да пређете кроз редове у табели спајањем колона са првом колоном из вашег скупа података у Екцел-у.
На пример, за наш скуп података, прво ћемо итерирати кроз Јохн у ћелији Б5 и 101 у ћелији Ц5 тако што ћемо их спојити, а затим итерирати кроз Јохн у ћелији Б5 и 89 у ћелији Д5 тако што ћемо их спојити из реда 5 .
Дозволите нам да вам покажемо како то можете да урадите са ВБА макро у Екцел-у.
Кораци:
- Прво отворите Висуал Басиц Едитор из <Картица 1>Девелопер и Инсерт а Модуле у прозор кода.
- Друго, у прозору кода, копирајте следеће коди налепите то.
9476
Ваш код је сада спреман за покретање.
- Треће, Покрени макро. Погледајте гиф испод да видите резултат.
Појавиће се искачући прозор МсгБок који ће вам показати спојену вредност ћелија из прве и друге колоне ( Јохн у ћелији Б5 из колоне Б и 101 у ћелији Ц5 из колоне Ц ), а затим конкатенирана вредност ћелија из прве и треће колоне ( Јован у ћелији Б5 из колоне Б и 89 у ћелији Д5 из колоне Д ) реда број 5 из вашег скупа података. И ова операција спајања ће се наставити све док не дође до последњег реда табеле.
Објашњење ВБА кода
9527
Дефинишите променљиву.
8956
Онда код бира табелу са активног листа (“ ТблЦонцатенате ” у нашем називу табеле).
8529
Након тога, почиње понављање сваког реда искључујући заглавље колона. Ако итерација пронађе подударање у опсегу између заглавља колоне и редова, онда она чува вредност у променљивој иВалуе .
8675
Ако се горњи услов не испуни, онда код баца вредност у МсгБок и завршава услов. Након тога, прелази на петљу у другом опсегу и наставља понављање до завршног реда. Када стигне до крајњег реда, макро завршава извршавање кода.
4. Угради макро за понављањекроз редове спајањем свих колона у табели у Екцел-у
У овом одељку ћемо научити како да конкатенирамо све колоне које сваки ред држи у скупу података са ВБА макро у Екцел-у.
Кораци које треба извршити приказани су испод.
Кораци:
- Прво, отворите Висуал Басиц Едитор са картице Девелопер и Инсерт а Модуле у прозор кода.
- Затим, копирајте следећи код и налепите га у прозор кода.
3484
Ваш код је сада спреман за покретање.
- Следеће, Покрени макро код.
Као што можете видети из горњег гиф-а је да постоји искачући прозор МсгБок који вам показује конкатенирану вредност свих колона које се налазе у сваком реду из табеле вашег Екцел радног листа.
Објашњење ВБА кода
5281
Дефинишите варијабле.
6040
Подесите име листа са којим ћемо радити (“ ЦонцатенатингАллЦол ” је име листа у радној свесци).
9494
Де прецизно име табеле са којом ћемо радити („ ТблЦонцатенатеАлл ” је име табеле у нашем скупу података).
1468
Почиње итерацију кроз сваки ред табеле.
8315
Започиње итерацију кроз сваку колону сваког реда табеле.
3930
Снимите резултат пресецањем вредности које свака колона сваког реда носи. Након скенирања кроз све колоне које се налазе у сваком реду, прошао јерезултат у МсгБок-у. Затим поново почиње да петља у следећем реду и наставља да петља све док не дође до последњег реда табеле.
Прочитајте више: Како сортирати више колона табеле помоћу Екцел ВБА (2 метода)
5. Зауставите итерацију ако је вредност пронађена петљом кроз редове табеле помоћу ВБА макроа
Претпоставимо да желите да прођете кроз редове ваше табеле и зауставите петљу када пронађе одређену вредност . То можете да урадите помоћу једноставног кода макроа.
Хајде да научимо како да то урадимо ВБА у Екцел-у.
Кораци:
- Прво, отворите Висуал Басиц Едитор са картице Развојник и Инсерт а Модуле у прозору кода.
- Затим, у прозору кода, копирајте следећи код и налепите га.
4365
Ваш код је сада спреман за покретање .
- Касније, Покрени макро.
- Он ће покренути петљу и зауставити је када проналази специфичну вредност (“ Едге ”) у опсегу и баца резултат у МсгБок .
Као што можете да видите са горње слике, постоји искачући МсгБок који вам показује адресу ћелије, $Б$10 , где смо пронашли наведену вредност, “ Едге ” .
Објашњење ВБА кода
9313
Дефинишите променљива.
9008
Овај део кода је овде за петљу кроз редове од 1 до 15. Ако пронађе одређену реч“ Едге ” затим прослеђује резултат са адресом ћелије која садржи реч. То наставља да ради све док не заврши скенирање свих података од редова 1 до 15 у потрази за речју.
Прочитајте више: Како да уметнете или избришете редове и колоне из Екцел табеле
6. ВБА да прође кроз сваки ред и обоји одређену вредност у Екцел-у
Шта ако не желите да убаците адресу ћелије наведене вредности у МсгБок? Можда бисте желели да обојите ћелију која носи вредност коју тражите.
Хајде да научимо како то да урадимо помоћу ВБА макроа.
Кораци:
- На исти начин као и раније, отворите Висуал Басиц Едитор са картице Девелопер и Инсерт а Модуле у прозору кода.
- Затим, копирајте следећи код и налепите га у прозор кода.
9193
Ваш код је сада спреман за покретање.
- Након тога, Покрени макро.
- Он ће покренути петљу и зауставити је када пронађе одређену вредност (“ Едге ”) у опсегу и обоји ћелију са ЦолоурИндек који сте навели у коду.
Као што видите са горње слике, Ц елл Б10 , где смо пронашли наведену вредност, “ Едге ” је обојено након извршења кода.
Објашњење ВБА кода
9918
Дефиниши