Съдържание
Можем да намерим номера на реда в Excel по много начини, но VBA Чрез тях можем да намираме номера на редове по интелигентен начин. Днес в тази статия ще покажем 4 полезни макроса за намиране на номер на ред в Excel с помощта на VBA.
Изтегляне на работна тетрадка за практика
Можете да изтеглите безплатната работна тетрадка на Excel от тук и да се упражнявате самостоятелно.
Намиране на номер на ред с помощта на VBA.xlsm4 макроса за намиране на номер на ред чрез VBA в Excel
Запознайте се с нашата съвкупност от данни, която ще използваме, за да изследваме методите, които представят някои продажби на продавачи в различни региони.
Макрос 1: VBA за намиране на номер на ред чрез промяна на избора
Първо, ще използваме макрос в Excel VBA Това означава, че ако просто изберете която и да е използвана клетка, макросът веднага ще покаже номера на реда. За тази цел ще трябва да съхранявайте кодовете в един лист , а не в модула.
Стъпки:
- Кликнете с десния бутон върху заглавието на листа и изберете Вижте кода от контекстно меню .
- След това напишете следните кодове-
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Rnumber As Integer Rnumber = ActiveCell.row If ActiveCell.Value "" Then MsgBox "Номерът на реда на кликнатата клетка е: " & Rnumber End If End Sub
- По-късно не е необходимо да стартирате кодовете, а просто да се върнете към своя лист.
Разбивка на кода:
- Първо, създадох Частно подразделение процедура - Worksheet_SelectionChange .
- След това декларира променлива Rnumber като Цели числа .
- ред ще определи номера на реда на активната клетка.
- След това Ако ще провери дали активната клетка е празна или не, и след това MsgBox ще покаже резултата.
- Сега просто щракнете върху всяка използвана клетка и ще се покаже номерът на реда.
Прочетете още: Excel VBA: Намиране на низ в колона и връщане на номер на ред
Макрос 2: Намиране на номера на реда на активна клетка с помощта на VBA
Този макрос ще върне номера на реда на активна клетка в определена клетка на нашия лист. Така че ще трябва да споменем името на работния лист и изходната клетка в нашите кодове. Тук ще използваме Клетка D14 като изходна клетка.
Стъпки:
- Натиснете ALT + F11 за да отворите Прозорец VBA .
- След това щракнете върху следното, за да вмъкнете нов модул: Вмъкване> Модул .
- След това въведете следните кодове в модула-
Sub Find_Row_Number_of_an_Active_Cell() Dim wSheet As Worksheet Set wSheet = Worksheets("Active Cell") wSheet.Range("D14") = ActiveCell.row End Sub
- След това се върнете към листа си.
Разбивка на кода:
- Тук, Find_Row_Number_of_an_Active_Cell() е Под
- Сайтът wSheet се декларира като Работен лист
- След това Задайте ще изберете активната клетка
- Обхват ще върне номера на реда в изходната клетка.
- Сега изберете клетка и щракнете, както следва: Разработчик> Макроси .
- След като се появява в Macro диалогов прозорец, просто изберете името на макроса и натиснете Изпълнявайте .
Скоро след това ще видите, че номерът на реда на избраната клетка се връща в изходната клетка.
Можете да видите, че B8 Избрана е клетка, така че изходът е 8.
Прочетете още: Как да получите номера на реда на текущата клетка в Excel (4 бързи начина)
Подобни четива
- Как да увеличите номера на реда във формулата на Excel (6 удобни начина)
- Получаване на номер на ред от обхват с Excel VBA (9 примера)
- Как да върнете номера на реда на съвпадение на клетки в Excel (7 метода)
- Как да получите номер на ред от стойността на клетката в Excel (5 метода)
Макрос 3: VBA за намиране на номер на ред чрез съвпадение на стойност
Ако искате да намерите номера на реда чрез търсене на стойност, тогава този макрос е за вас. Трябва да посочите стойността за търсене и номера на колоната в кодовете, както е показано на изображението по-долу.
Стъпки:
- Изпълнете първите две стъпки от предишния метод за вмъкване на нов модул.
- След това въведете следните кодове в него.
Sub Find_Row_Matching_a_Value() Dim wBook As Workbook Dim wSheet As Worksheet Dim fCell As Range Set wBook = ActiveWorkbook Set wSheet = ActiveSheet Const Matching_Value As String = "Luka" Set fCell = wSheet.Range("B:B").Find(What:=Matching_Value) If Not fCell Is Nothing Then MsgBox (Matching_Value & " is located in row: " & fCell.row) Else MsgBox (Matching_Value & " Not matched") EndАко Край Sub
- След това се върнете към своя лист.
Разбивка на кода:
- Тук функцията Find_Row_Matching_a_Value() е Под
- И wBook и wSheet са декларирани като Работен лист и fCell се декларира като Обхват .
- Сайтът wBook и wSheet са зададени за ActiveWorkbook и ActiveSheet .
- Конст ще приеме входна информация за търсената стойност.
- По-късно, Обхват ще търси стойността в посочената колона.
- След това Ако и В противен случай ще покаже резултата с помощта на MsgBox .
- По-късно, следвайте петата стъпка от предишния метод за да отворите Macro диалогов прозорец.
- Изберете име на макрос и просто натиснете Изпълнявайте .
Скоро в полето за известия ще се появи номерът на реда.
Прочетете още: Excel VBA: Връщане на номера на реда на стойността (5 подходящи метода)
Макрос 4: Бутон за намиране на номер на ред
В последния ни метод ще ви покажем най-интелигентния метод за определяне на номер на ред с помощта на VBA Макроси. Ще направим бутон и ще присвоим макрос с него. Когато щракнем върху бутона, ще се отвори поле за въвеждане, в което можем да зададем стойността за търсене, за която искаме номера на реда. Предишният макрос можеше да търси в посочената колона, но този макрос може да търси във всяка колона, навсякъде в листа.
Стъпки:
- Отново следвайте първите две стъпки от втория метод за вмъкване на нов модул.
- След това въведете следните кодове в него.
Sub Find_Row_Number() Dim mValue As String Dim mrrow As Range mValue = InputBox("Insert a value") Set mrrow = Cells.Find(What:=mValue, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False) If mrrow Is Nothing Then MsgBox ("No Match") Else MsgBox (mrrow.row) End If End Sub
- След това се върнете към листа си.
Разбивка на кода:
- Първо, създадох Под процедура Find_Row_Number().
- След това декларира две променливи, mValue като Редица и ред като Обхват .
- След това използвайте InputBox за вмъкване на стойност.
- По-късно Задайте и Ако ще намери номера на реда, ако той не е празен.
- И накрая. MsgBox ще покаже резултата.
- По-късно щракнете върху Разработчик> Вмъкване и след това изберете Бутон команда от Раздел Контроли на формуляра .
- Тогава ще получите знак плюс с курсора, плъзнете навсякъде, като щракнете върху листа в зависимост от желания размер, и след това отпуснете щракването.
- След като освободите мишката. Присвояване на макрос диалоговият прозорец ще се отвори автоматично.
- Изберете име на макрос както е посочено в кодовете.
- След това просто натиснете ОК .
- След това щракнете с десния бутон върху бутона и изберете Редактиране на текст за да редактирате името на бутона.
- Въведете името на бутона, след което щракнете навсякъде извън бутона и името ще бъде променено.
- Сега щракнете върху бутона, за да се отвори поле за въвеждане.
- Накрая просто въведете стойността за търсене и натиснете OK .
Сега погледнете, че се показва номерът на реда на съвпадащата стойност.
Прочетете още: Намиране на низ в колона и връщане на номер на ред в Excel (7 начина)
Заключение
Това е всичко за статията. Надявам се, че процедурите, описани по-горе, ще бъдат достатъчно добри, за да намерите номера на реда в Excel с помощта на VBA. Чувствайте се свободни да задавате всякакви въпроси в раздела за коментари и моля, дайте ми обратна връзка. Посетете ExcelWIKI, за да проучите повече.