Оглавление
Мы можем найти номера строк в 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 "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, чтобы узнать больше.