Как найти номер строки с помощью 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 "The row number of the clicked cell is: " & 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() это Sub
  • Сайт wSheet объявляется как Рабочий лист
  • Затем Установите оператор выделит активную ячейку
  • Диапазон вернет номер строки в ячейке вывода.
  • Теперь выделите ячейку и щелкните следующим образом: Разработчик> Макросы .

  • После появления в Макро диалогового окна, просто выберите имя макроса и нажмите кнопку Запускайте .

Вскоре после этого вы увидите, что номер строки выбранной ячейки возвращается в нашу выходную ячейку.

Вы можете видеть, что 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 & " находится в строке: " & fCell.row) Else MsgBox (Matching_Value & " не совпадает") EndIf End Sub 
  • После этого вернитесь к своему листу.

Разбивка кода:

  • Здесь функция Find_Row_Matching_a_Value() является Sub
  • И wBook и wSheet объявляются как Рабочий лист и fCell объявляется как Диапазон .
  • Сайт wBook и wSheet устанавливаются для ActiveWorkbook и ActiveSheet .
  • Const будет принимать входные данные для поиска значения.
  • Позже, Диапазон будет искать значение через указанный столбец.
  • Далее Если и Else оператор покажет результат, используя MsgBox .
  • Позже, выполните 5-й шаг из предыдущего метода чтобы открыть Макро диалоговое окно.
  • Выберите имя макроса и просто нажмите Запускайте .

Вскоре в окне уведомления появится номер строки.

Читать далее: Excel VBA: Возврат номера строки значения (5 подходящих методов)

Макрос 4: Кнопка для поиска номера строки

В нашем последнем методе мы покажем вам самый умный метод определения номера ряда с помощью VBA Мы создадим кнопку и назначим ей макрос. Когда мы нажмем на кнопку, откроется окно ввода, где мы можем ввести значение поиска, для которого нам нужен номер строки. Предыдущий макрос мог искать в указанном столбце, но этот макрос может искать в любом столбце, в любом месте листа.

Шаги:

  • Снова выполните первые два шага из второго метода чтобы вставить новый модуль.
  • Затем вставьте в него следующие коды-.
 Sub Find_Row_Number() Dim mValue As String Dim mrrow As Range mValue = InputBox("Вставьте значение") 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 
  • Затем вернитесь к своему листу.

Разбивка кода:

  • Во-первых, я создал Sub процедура Find_Row_Number().
  • Затем объявил две переменные, mValue в качестве Строка и строка в качестве Диапазон .
  • Затем использовал InputBox чтобы вставить значение.
  • Позже Установите и Если оператор найдет номер строки, если она не пуста.
  • Наконец, в MsgBox покажет результат.
  • Позже нажмите Разработчик> Вставка а затем выберите Кнопка команда из Раздел "Элементы управления формой .

  • Тогда вы получите знак плюс курсором, перетащите в любое место листа в соответствии с желаемым размером, а затем отпустите щелчок.

  • После отпускания мыши Назначить макрос диалоговое окно откроется автоматически.
  • Выберите имя макроса как указано в кодексах.
  • Затем просто нажмите OK .

  • Затем щелкните правой кнопкой мыши на кнопке и выберите Редактировать текст для редактирования названия кнопки.

  • Введите имя кнопки, затем щелкните в любом месте за пределами кнопки, и имя будет изменено.

  • Теперь нажмите на кнопку, откроется поле ввода.
  • Наконец, просто вставьте искомое значение и нажмите кнопку OK .

Теперь посмотрите, он показывает номер строки совпавшего значения.

Читать далее: Найти строку в столбце и вернуть номер строки в Excel (7 способов)

Заключение

Надеюсь, описанные выше процедуры будут достаточно полезны для поиска номера строки в excel с помощью VBA. Не стесняйтесь задавать любые вопросы в разделе комментариев и, пожалуйста, дайте мне обратную связь. Посетите ExcelWIKI, чтобы узнать больше.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.