Съдържание
При работа с Microsoft Excel намирането на последните редове или колони е често срещана задача. Използваме клавиатурата, за да намерим последните използвани редове или колони. Но може да се окажете в ситуация, в която трябва да намерите последния използван ред от сложен набор от данни. В този урок ще се научите да намирате последния ред с данни в диапазон с помощта на VBA в Excel с практически примери и подходящи илюстрации.
Изтегляне на работна тетрадка за практика
Изтеглете тази учебна тетрадка.
Намиране на последния използван ред в Range.xlsm7 метода за намиране на последния ред с данни в даден диапазон с помощта на макроси Excel VBA
В следващите раздели ще ви представим седем метода, които ще ви помогнат да намерите последния ред с данни в даден диапазон с помощта на VBA в Excel. Препоръчваме ви да научите и приложите всички тези методи, за да обогатите знанията си за Excel.
📕 Прочетете повече : Намиране на последната клетка със стойност в ред в Excel (6 метода)
За да демонстрираме този урок, ще използваме този набор от данни:
Тук имаме набор от данни, състоящ се от информация за някои играчи. Ще го използваме, за да ви научим на всички методи.
Отваряне на редактора VBA
Преди да започнем, тук ние възраст ви дава просто напомняне за отваряне на VBA Editor в Excel.
Първо, натиснете Alt+F11 на клавиатурата си. След това изберете Insert> Модул. След това ще се отвори редакторът VBA на Excel.
1. Използване на свойството Range.End за намиране на последния ред с данни в диапазон с помощта на VBA
Сега този метод основно намира края на даден диапазон. Главно, последният използван диапазон от клетки. Можем да използваме този метод, за да намерим последния ред с данни в даден диапазон. Използването на VBA ще ви даде желаните резултати.
📌 Стъпки
① Първо отворете VBA Редактор.
② След това въведете следния код:
Sub range_end_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = Range("B4").End(xlDown).Row MsgBox "Last used row: " & LastRow End Sub
③ Сега запазете файла. След това натиснете Alt+F8 за да отворите диалоговия прозорец Macro. range_end_method
④ След това щракнете върху Run (Изпълни).
Както виждате, успешно открихме последния ред с данни в даден диапазон с помощта на VBA в Excel.
2. Range.Find свойство на VBA в Excel
Сега във VBA използваме метода Range.Find, за да търсим конкретна стойност от набор от данни. Но този метод е удобен за намиране на последния ред с данни в даден диапазон. Той работи като диалоговия прозорец Find & Replace на Excel. Методът Range. Find има много аргументи. Но няма да използваме всички.
Преди да използваме метода Range.Find, нека ви дадем кратка информация:
Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious)
Какво := "*" - Звездичката е заместващ символ, който открива всеки текст или число в клетката. Тя е основно същата като търсенето на непразна клетка.
SearchOrder:=xlByRows - Това означава, че трябва да се претърси целият ред, преди да се премине към следващия. В зависимост от аргумента SearchDirection се търси отляво надясно или отдясно наляво. Допълнителната опция тук е xlByColumns, която се използва при намирането на последната колона.
SearchDirection:=xlPrevious - Това определя коя посока да се изследва. xlPrevious означава, че ще се търси отдясно наляво или отдолу нагоре. Другата алтернатива е xlNext, която се премества по обратния път.
📌 Стъпки
① Първо отворете редактора VBA.
② След това въведете следния код:
Sub range_find_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row MsgBox "Last used row: " & LastRow End Sub
③ След това натиснете Alt+F8, за да отворите диалоговия прозорец Macro. range_find_method.
④ След това щракнете върху Изпълнявайте .
В крайна сметка ще бъде намерен последният ред с данни в работния лист на Excel.
3. Използване на функцията SpecialCells за намиране на последния ред чрез VBA
Този метод работи като натискане на Ctrl+End Когато натиснете Ctrl+End на клавиатурата си, това винаги ще ви отведе до последния ред, независимо къде се намирате. Но ако искате да намерите последния използван ред с данни, използвайки кодове VBA в Excel, този код е задължителен за вас.
📌 Стъпки
① Първо отворете редактора VBA.
② След това въведете следния код:
Sub specialcells_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Cells.SpecialCells(xlCellTypeLastCell).Row MsgBox "Last used row: " & LastRow End Sub
③ След това натиснете Alt+F8, за да отворите диалоговия прозорец Macro. specialcells_method .
④ След това щракнете върху Изпълнявайте .
Както виждате, успешно откриваме последния ред с данни с помощта на VBA в Excel.
4. Използване на функцията UsedRange за намиране на последния ред с данни в даден диапазон
UsedRange във VBA е притежание на работния лист, което връща обект с обхват, представляващ използвания обхват (всички клетки на Excel, използвани или заредени в работен лист) на конкретен работен лист. Това е свойство, което означава областта, покрита или определена от горната лява използвана клетка и последната дясна използвана клетка в работен лист.
📌 Стъпки
① Първо отворете редактора VBA.
② След това въведете следния код:
Sub usedRange_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row MsgBox "Last used row: " & LastRow End Sub
③ След това натиснете Alt+F8, за да отворите диалоговия прозорец Macro. usedRange_method.
④ След това щракнете върху Изпълнявайте .
Накрая ще видите успешно последния използван ред в работен лист в Excel.
5. Използване на диапазон на таблицата с помощта на VBA в Excel
Ако имате таблица в работния си лист, можете да намерите последния ред с данни с този метод.
📌 Стъпки
① Първо отворете редактора VBA.
② След това въведете следния код:
Sub TableRange_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.ListObjects("Table1").Range.Rows.Count + 3 MsgBox "Last used row: " & LastRow End Sub
Забележка : Тук добавяме 3 с последния ред, тъй като нашата съвкупност от данни започна след ред 3.
③ След това натиснете Alt+F8, за да отворите диалоговия прозорец Macro. TableRange_method.
④ След това щракнете върху Изпълнявайте .
Както можете да видите, успешно използвахме метода за обхват на таблицата във VBA кодове, за да намерим последния ред с данни в Excel.
6. използване на именувания диапазон за намиране на последния ред с данни в даден диапазон
Този метод не се използва често в Excel. Но смятаме, че трябва да го научите, за да обогатите знанията си.
Ако наборът ви от данни има именуван диапазон, можете да използвате този код. Разгледайте следната снимка на екрана. В нея има именуван диапазон.
📌 Стъпки
① Първо отворете редактора VBA.
② След това въведете следния код:
Sub nameRange_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Range("Named_Range").Rows.Count + 1 MsgBox "последен използван ред: " & LastRow End Sub
Забележка : Добавяме 1 към LastRow, тъй като обхватът ни започна след ред 1.
③ Сега запазете файла. След това натиснете Alt+F8 за да отворите диалоговия прозорец Macro. nameRange_method.
④ След това щракнете върху Run (Изпълни).
Както виждате, с помощта на VBA успяваме да намерим последния ред с данни.
7. Функция CurrentRegion на VBA в Excel
Можете също така да използвате метода CurrentRegion на VBA, за да намерите последния използван ред в Excel. Въпреки че е трудно, можете да използвате това във ваша полза, ако искате.
📌 Стъпки
① Първо отворете редактора VBA.
② След това въведете следния код:
Sub CurrentRegion_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Range("B4").CurrentRegion.Rows.Count + 3 'добавете числа по ваш избор' MsgBox "Last used row: " & LastRow End Sub
Забележка : Range трябва да бъде първата клетка на набора ви от данни. И добавете номера на редовете според избора си. Тук добавихме 3, защото нашият набор от данни започна след ред 3.
③ След това натиснете Alt+F8, за да отворите диалоговия прозорец Macro. CurrentRegion_method
④ След това щракнете върху Run (Изпълни).
Както можете да видите, успешно открихме последния ред с данни с помощта на кода VBA.
💬 Нещата, които трябва да запомните
✎ Range.End работи само за един ред или колона. Ако наборът ви от данни съдържа много празни клетки, ще бъде трудно да намерите последния ред с данни.
✎ Понякога се налага да добавите някои стойности към методите си, за да работи кодът гладко. Добавихме номера на реда, за да намерим последната клетка. Така че трябва да запомните откъде започва наборът ви от данни.
Заключение
В заключение, надявам се, че този урок ви е предоставил част от полезните знания за намиране на последния ред с данни в диапазон с помощта на VBA в Excel. Препоръчваме ви да научите и приложите всички тези инструкции към вашия набор от данни. Изтеглете работната тетрадка за упражнения и ги изпробвайте сами. Също така, не се колебайте да дадете обратна връзка в раздела за коментари. Вашата ценна обратна връзка ни мотивира да създаваме подобни уроци.
Не забравяйте да проверите нашия уебсайт Exceldemy.com за различни проблеми и решения, свързани с Excel.
Продължавайте да изучавате нови методи и да се развивате!