Намиране на последния ред с данни в диапазон с помощта на макроси Excel VBA (7 метода)

  • Споделя Това
Hugh West

При работа с Microsoft Excel намирането на последните редове или колони е често срещана задача. Използваме клавиатурата, за да намерим последните използвани редове или колони. Но може да се окажете в ситуация, в която трябва да намерите последния използван ред от сложен набор от данни. В този урок ще се научите да намирате последния ред с данни в диапазон с помощта на VBA в Excel с практически примери и подходящи илюстрации.

Изтегляне на работна тетрадка за практика

Изтеглете тази учебна тетрадка.

Намиране на последния използван ред в Range.xlsm

7 метода за намиране на последния ред с данни в даден диапазон с помощта на макроси 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.

Продължавайте да изучавате нови методи и да се развивате!

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.