Как да намерите номер на ред с помощта на VBA в Excel (4 макроса)

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

Можем да намерим номера на реда в Excel по много начини, но VBA Чрез тях можем да намираме номера на редове по интелигентен начин. Днес в тази статия ще покажем 4 полезни макроса за намиране на номер на ред в Excel с помощта на VBA.

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

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

Намиране на номер на ред с помощта на VBA.xlsm

4 макроса за намиране на номер на ред чрез 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, за да проучите повече.

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