Последњи ред Екцел ВБА
Проналажење последњег реда у колони је важан аспект у писању макронаредби и њиховом динамичком. Као што не бисмо волели да ажурирамо распон ћелија с времена на време када радимо са Екцел референцама ћелија. Као кодер / програмер увек бисте радије написали динамички код који се може користити на било којим подацима и довољан је вашим захтевима. Штавише, увек би било сјајно да о последњим редовима знате своје податке, тако да можете динамички да мењате код према вашим захтевима.
Само ћу указати на један пример који понавља важност динамичког кода.
Претпоставимо да имам податке као што су доле наведени о запосленима и њиховим платама.
И погледајте код наведен у наставку:
Шифра:
Под-пример1 () Распон ("Д2") Вредност = ВорксхеетФунцтион.Сум (Распон ("Б2: Б11")) Крај Под
Овде се у овом коду штампа збир зарада свих запослених (ћелија Б2: Б11 ) у ћелији Д2 . Погледајте слику испод:
Шта ако додам неке ћелије у ове податке и поново покренем овај код?
Логично гледано, горњи код неће збројити свих 14 редова из ступца Б. Разлог за то је распон који смо ажурирали под ВорксхеетФунцтион (што је Б2: Б11). То је разлог због којег нам је важнији динамички код који може узети у обзир посљедњи попуњени ред.
У овом ћу чланку представити неке методе које могу бити корисне у проналажењу задњег ретка за одређени скуп података користећи ВБА код.
Како пронаћи задњи коришћени ред у колони помоћу ВБА?
Испод су различити примери различитих метода за проналажење последњег коришћеног ретка колоне у Екцелу помоћу ВБА кода.
Можете да преузмете овај ВБА предлога за последњи ред ВБА овде - Предложак ВБА последњег реда за ЕкцелПример # 1 - Коришћење методе Ранге.Енд ()
Па, овај метод је исти као и коришћење Цтрл + стрелице надоле у Екцелу за прелазак на последњи непразни ред. У сличним редовима, следите доле наведене кораке за креирање кода у ВБА да бисте дошли до последњег не празног реда колоне у Екцелу.
Корак 1: Дефинишите променљиву која може примити вредност за последњи непразни ред Екцел колоне.
Шифра:
Суб Пример2 () Дим Ласт_Ров Ас Лонг Енд Суб
Овде је променљива Ласт_Ров дефинисана као ЛОНГ само да би била сигурна да може узети било који број аргумената.
Корак 2: Користите дефинисану променљиву да задржите вредност последњег не-празног ретка.
Шифра:
Суб Пример2 () Дим Ласт_Ров Ас Лонг Ласт_Ров = Енд Суб
Корак 3: Унесите код који почиње са ЦЕЛЛС (Ровс.Цоунт испред Ласт_Ров = .
Шифра:
Суб Екампле2 () Дим Ласт_Ров Ас Лонг Ласт_Ров = Целлс (Ровс.Цоунт Енд Суб
Корак 4: Спомените 1 након зареза у горе наведеном коду. Вредност број 1 је синоним за први ступац у екцел листу.
Шифра:
Под-пример2 () Дим Ласт_Ров Ас Лонг Ласт_Ров = Целлс (Ровс.Цоунт, 1) Енд Суб
Овај код омогућава ВБА да сазна укупан број редова (празан + не-празан) који су присутни у првој колони екцел радног листа. То значи да овај код омогућава систему да оде до последње ћелије Екцела.
Шта ако сте у последњој ћелији екцела и желите да пређете на последњи непразни ред? Користићете Цтрл + стрелицу горе, зар не?
Иста логика коју ћемо користити и у наредном реду кода.
Корак 5: Употријебите комбинацију типке Енд и клУп за пријелаз на задњи не празни ред у екцелу.
Шифра:
Под-пример2 () Дим Ласт_Ров Ас Лонг Ласт_Ров = Целлс (Ровс.Цоунт, 1) .Енд (клУп) Енд Суб
Ово ће вас одвести до последњег не празног реда у екцелу. Међутим, желели сте број реда за исто.
Корак 6: Користите РОВ за добијање броја ретка последњег, непуног реда.
Шифра:
Под-пример2 () Дим Ласт_Ров Ас Лонг Ласт_Ров = Целлс (Ровс.Цоунт, 1) .Енд (клУп) .Ров Енд Суб
Корак 7: Прикажите вредност Ласт_Ров која садржи последњи непразни број реда користећи МсгБок.
Шифра:
Под-пример2 () Дим Ласт_Ров Ас Лонг Ласт_Ров = Целлс (Ровс.Цоунт, 1) .Енд (клУп) .Ров МсгБок Ласт_Ров Енд Суб
Корак 8: Покрените код помоћу гумба Покрени или притиском на Ф5 и погледајте излаз.
Излаз:
Корак 9: Сада обришемо један ред и видимо да ли код даје тачан резултат или не. То ће нам помоћи да провјеримо динамичност нашег кода.
Пример # 2 - Коришћење опсега и специјалних ћелија
Такође можемо користити својство Ранге и СепциалЦеллс ВБА да добијемо последњи непразни ред екцел листа.
Следите доле наведене кораке да бисте добили последњи непразни ред у екцелу користећи ВБА код:
Корак 1: Поново дефинишите променљиву као Лонг.
Шифра:
Суб Пример3 () Дим Ласт_Ров Ас Лонг Енд Суб
Корак 2: Почните чување вредности у променљиву Ласт_Ров користећи оператора додјеле.
Шифра:
Суб Пример3 () Дим Ласт_Ров Ас Лонг Ласт_Ров = Енд Суб
Корак 3: Покрените опсег куцања („А: А“) .
Шифра:
Суб Пример3 () Дим Ласт_Ров Ас Лонг Ласт_Ров = Опсег ("А: А") Крај Суб
Корак 4: Употријебите функцију СпециалЦеллс да бисте сазнали задњу не празну ћелију.
Шифра:
Суб Екампле3 () Дим Ласт_Ров Ас Лонг Ласт_Ров = Опсег ("А: А"). СпециалЦеллс (клЦеллТипеЛастЦелл) Енд Суб
Ова функција СпециалЦеллс бира задњу ћелију из свог екцела јер је написана заградама ( клЦеллТипеЛастЦелл омогућава да одаберете последњу не-празну ћелију са свог екцел листа).
Корак 5: Сада користите РОВ да бисте добили последњи ред са свог екцел листа.
Шифра:
Суб Екампле3 () Дим Ласт_Ров Ас Лонг Ласт_Ров = Опсег ("А: А"). СпециалЦеллс (клЦеллТипеЛастЦелл) .Ров Енд Суб
Ово ће вратити последњи непразни ред за вас од свог екцела.
Корак 6: Сада доделите ову вредност Ласт_Ров МсгБок-у тако да на пољу за поруке можемо видети последњи непразни број реда.
Шифра:
Под-пример3 () Дим Ласт_Ров Ас Лонг Ласт_Ров Ас Лонг Ласт_Ров = Опсег ("А: А"). СпециалЦеллс (клЦеллТипеЛастЦелл) .Ров МсгБок Ласт_Ров Енд Суб
Корак 7: Покрените код притиском на Ф5 или дугме Рун који се налази у врху левог угла.
Излаз:
Можете видети да је последњи непразни број ћелије искочен кроз МсгБок у односу на колону А. Зато што смо поменули ступац А под опсегом функције док дефинирамо променљиву формулу.
Корак 8: Ако избришемо ред и можемо покренути ову формулу. Хајде да видимо шта се дешава.
Можете видети да је систем и даље бројао редове као 14. Иако сам избрисао ред и стварни број реда је 13, систем није тачно ухватио број реда. Да би систем забиљежио стварни број редака, морате спремити радни лист и поново покренути код.
Можете да видите тренутно приказано редно на овом слици.
Пример # 3 - Коришћење Ранге.Финд ()
Следите доле наведене кораке да бисте добили последњи непразни ред у екцелу користећи ВБА код:
Корак 1: Дефинишите променљиву као дугу.
Шифра:
Суб Екампле4 () Дим Ласт_Ров Ас Лонг Енд Суб
Корак 2: Сада користите следећи код да бисте видели последњи непразни ред.
Шифра:
Под-пример4 () Дим Ласт_Ров Ас Лонг Ласт_Ров = Целлс.Финд (Шта: = "*", _ После: = домет ("А1"), _ ЛоокАт: = клПарт, _ ЛоокИн: = клФормулас, _ СеарцхОрдер: = клБиРовс, _ СеарцхДирецтион: = клПревиоус, _ МатцхЦасе: = Фалсе) .Ров Енд Суб
Овде функција ФИНД тражи прву ћелију која није празна. Звездица (*) је главни корисник који помаже у проналажењу истог.
Полазећи од ћелије А1, систем се враћа до последње ћелије са листа и тражи у смеру уназад (клПревиоус). Помиче се с десна на лијево (клБиРовс) и петља се на истом листу кроз све редове на сличним линијама све док не нађе празан ред (види .РОВ на крају кода).
Корак 3: Користите МсгБок да бисте сачували вредност последњег не празног реда и видели га као скочни оквир.
Шифра:
Под-пример4 () Дим Ласт_Ров Ас Лонг Ласт_Ров = Целлс.Финд (Шта: = "*", _ После: = домет ("А1"), _ ЛоокАт: = клПарт, _ ЛоокИн: = клФормулас, _ СеарцхОрдер: = клБиРовс, _ СеарцхДирецтион: = клПревиоус, _ МатцхЦасе: = Фалсе). Ров МсгБок Ласт_Ров Енд Суб
Корак 4: Покрените код и видите излаз као скочни оквир који садржи последњи непразни број реда.
Излаз:
Ствари које треба запамтити
- Крај (Пример 1) може се користити за проналажење прве празне ћелије / ретка или последње не празне ћелије / ретка у датој колони помоћу ВБА кода.
- Крај дјелује на једној колони већину времена. Ако имате податке у распонима, било би тешко одлучити који ће ступац бити кориштен да бисте сазнали последњи непразни ред.
- Финд (Екампле3) ради на читавом распону од тачке почетка и проналази задњу не-празну ћелију / ред у датој колони користећи ВБА код. Такође се може користити за проналажење последње непразне колоне.
Препоручени чланци
Ово је водич за ВБА Последњи ред. Овде смо расправљали о томе како пронаћи последњи коришћени ред у датој колони, заједно са неколико практичних примера и преузетог екцел предлошка. Такође можете погледати следеће чланке да бисте сазнали више -
- Како се користи ВБА ступац за уметање?
- Како одабрати редове и ступце у Екцелу?
- Преглед ћелија распона ВБА
- Како додати ћелије у Екцел?