VBA Последен ред - Как да намерите последно използвания ред в Excel с помощта на VBA код?

Съдържание:

Anonim

Excel VBA Последен ред

Намирането на последния ред в колона е важен аспект при писането на макроси и правенето на тези динамични. Тъй като не бихме предпочели да актуализираме обхвата на клетките от време на време, когато работим с препратки към клетки в Excel. Като кодер / разработчик винаги бихте предпочели да напишете динамичен код, който може да се използва за всякакви данни и е достатъчен за вашето изискване. Освен това винаги ще бъде чудесно, ако имате последния ред, известен на вашите данни, така че да можете динамично да променяте кода според вашите изисквания.

Само ще посоча един пример, който повтаря значението на динамичния код.

Да предположим, че имам данни, както са дадени по-долу за служителите и техните заплати.

И погледнете кода, даден по-долу:

Код:

 Под пример1 () Диапазон ("D2"). Стойност = Работен листFunction.Sum (Обхват ("B2: B11")) Край Sub 

Тук този код отпечатва сумата на заплатите за всички служители (клетка B2: B11 ) в клетка D2 . Вижте изображението по-долу:

Какво ще стане, ако добавя някои клетки в тези данни и пускам този код отново?

Логично казано, горният код няма да сумира всичките 14 реда от колона Б. Причина за същото е диапазонът, който актуализирахме под WorksheetFunction (което е B2: B11). Това е причината, за нас е по-важен динамичният код, който може да вземе предвид последния запълнен ред.

В тази статия ще ви представя някои методи, които могат да бъдат полезни при намирането на последния ред за даден набор от данни с помощта на VBA код.

Как да намерите последно използвания ред в колона с помощта на VBA?

По-долу са различните примери с различни методи за намиране на последния използван ред от колона в Excel с помощта на VBA код.

Можете да изтеглите този шаблон на VBA Last Row Excel тук - VBA шаблон за последен ред в Excel

Пример №1 - Използване на метода Range.End ()

Е, този метод е същият като използването на Ctrl + стрелка надолу в Excel, за да отидете до последния не празен ред. В подобни редове следвайте стъпките по-долу за създаване на код в VBA, за да стигнете до последния не празен ред на колона в Excel.

Стъпка 1: Определете променлива, която може да приеме стойност за последния не празен ред на графа excel.

Код:

 Sub Example2 () Dim Last_Row As Long End Sub 

Тук променливата Last_Row се дефинира като LONG само за да се увери, че може да вземе произволен брой аргументи.

Стъпка 2: Използвайте дефинираната променлива, за да задържите стойността на последния непразен ред.

Код:

 Sub Example2 () Dim Last_Row As Long Last_Row = End Sub 

Стъпка 3: Въведете кода, започващ с CELLS (Rows.Count пред Last_Row = .

Код:

 Под пример2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count End Sub 

Стъпка 4: Споменете 1 след запетая в гореспоменатия код. Стойността числова 1 е синоними към първата колона в листа на excel.

Код:

 Под пример2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) End Sub 

Този код позволява на VBA да открие общия брой редове (празни + не празни), присъстващи в първата колона на работния лист на excel. Това означава, че този код позволява на системата да отиде до последната клетка на Excel.

Какво ще стане, ако сте в последната клетка на excel и искате да отидете до последния не празен ред? Ще използвате Ctrl + стрелка нагоре, нали?

Същата логика, която ще използваме в следващия ред код.

Стъпка 5: Използвайте комбинация от клавиш End и xlUp, за да отидете на последния не празен ред в excel.

Код:

 Под пример2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) End Sub 

Това ще ви отведе до последния не празен ред в excel. Искате обаче номер на ред за същото.

Стъпка 6: Използвайте ROW, за да получите номера на реда на последния не празен ред.

Код:

 Под пример2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row End Sub 

Стъпка 7: Покажете стойността на Last_Row, която съдържа последния непразен номер на реда, използвайки MsgBox.

Код:

 Под пример2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox Last_Row End Sub 

Стъпка 8: Стартирайте кода, като използвате бутона Run или натиснете F5 и вижте изхода.

изход:

Стъпка 9: Сега, нека изтрием един ред и да видим дали кодът дава точен резултат или не. Това ще ни помогне да проверим динамичността на нашия код.

Пример №2 - Използване на диапазон и специални клетки

Можем също така да използваме свойството Range и SepcialCells на VBA, за да получим последния не празен ред от листа на excel.

Следвайте стъпките по-долу, за да получите последния не празен ред в excel, използвайки VBA код:

Стъпка 1: Определете променлива отново като Дълга.

Код:

 Sub Example3 () Dim Last_Row As Long End Sub 

Стъпка 2: Започнете да съхранявате стойността в променливата Last_Row с помощта на оператора за присвояване.

Код:

 Sub Example3 () Dim Last_Row As Long Last_Row = End Sub 

Стъпка 3: Започнете диапазона на въвеждане („A: A“) .

Код:

 Sub Example3 () Dim Last_Row As Long Last_Row = Обхват ("A: A") Край Sub 

Стъпка 4: Използвайте функцията SpecialCells, за да разберете последната непразна клетка.

Код:

 Sub Example3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) End Sub 

Тази функция SpecialCells избира последната клетка от вашия excel, тъй като е написана скобите ( xlCellTypeLastCell позволява да изберете последната непразна клетка от вашия лист excel).

Стъпка 5: Сега използвайте ROW, за да получите последния ред от вашия лист excel.

Код:

 Sub Example3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub 

Това ще върне последния не празен ред за вас от вашия отличник.

Стъпка 6: Сега присвойте тази стойност на Last_Row на MsgBox, така че да можем да видим последния не празен номер на реда в полето за съобщение.

Код:

 Под пример3 () Dim Last_Row As Long Last_Row = Long ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub 

Стъпка 7: Стартирайте кода, като натиснете F5 или бутона Run, поставен в горната част на левия ъгъл.

изход:

Можете да видите, че последният непразен номер на клетка се изскача през MsgBox във връзка с колона А. Тъй като ние споменахме колона A под функция Range, докато дефинираме променливата формула.

Стъпка 8: Ако изтрием ред и можем да изпълним тази формула. Да видим какво ще стане.

Можете да видите, че системата все още е броила редове като 14. Въпреки че съм изтрил ред и действителното им число е 13, системата не е заснела точно броя на редовете. За да може системата да заснеме действителния брой на редовете, трябва да запазите работния лист и да стартирате кода отново.

Можете да видите, че реалният брой редове се показва на тази екранна снимка сега.

Пример №3 - Използване на Range.Find ()

Следвайте стъпките по-долу, за да получите последния не празен ред в excel, използвайки VBA код:

Стъпка 1: Определете променлива толкова дълго.

Код:

 Sub Example4 () Dim Last_Row As Long End Sub 

Стъпка 2: Сега използвайте следния код, за да видите последния не празен ред.

Код:

 Под пример4 () Dim Last_Row As Long Last_Row = Cells.Find (Какво: = "*", _ След: = обхват ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row End Sub 

Тук функцията FIND търси първа непразна клетка. Звездичка (*) е оператор със заместващи карти, който помага да откриете същото.

Като се започне от клетка А1, системата се връща към последната клетка от листа и търси в посока назад (xlPrevious). Той се движи отдясно на ляво (xlByRows) и се свързва в същия лист през всички редове на подобни редове, докато не намери празен ред (вижте .ROW в края на кода).

Стъпка 3: Използвайте MsgBox, за да запазите стойността на последния непразен ред и да го видите като изскачащ прозорец.

Код:

 Под пример4 () Dim Last_Row As Long Last_Row = Cells.Find (Какво: = "*", _ След: = обхват ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Row MsgBox Last_Row End Sub 

Стъпка 4: Стартирайте кода и вижте изхода като изскачащ прозорец, съдържащ последния непразен номер на реда.

изход:

Неща, които трябва да запомните

  • Край (Example1) може да се използва, за да откриете първата празна клетка / ред или последната непразна клетка / ред в дадена колона, използвайки VBA код.
  • Краят работи на една колона през повечето време. Ако имате данни в диапазони, би било трудно да решите коя колона да се използва, за да разберете последния непразен ред.
  • Find (Example3) работи за цял диапазон от началото и открива последната непразна клетка / ред в дадена колона, използвайки VBA код. Също така може да се използва за откриване на последната непразна колона.

Препоръчителни статии

Това е ръководство за последния ред на VBA. Тук обсъждаме как да намерим последния използван ред в дадена колона, заедно с някои практически примери и шаблон за excel за сваляне. Можете също да разгледате следните статии, за да научите повече -

  1. Как да използвате VBA Insert колона?
  2. Как да изберете редове и колони в Excel?
  3. Преглед на VBA обхвата на клетките
  4. Как да добавите клетки в Excel?