Excel VBA для поиска значения в столбце (6 подходящих примеров)

  • Поделись Этим
Hugh West

В MS Excel нам часто приходится искать или находить значения в наборе данных. Это может быть поиск данных в строках или столбцах. К счастью, Excel предоставляет различные функции и формулы для выполнения подобных задач. С помощью кода Excel VBA мы можем автоматизировать задачу поиска или нахождения значений. В этой статье мы рассмотрим различные способы, с помощью которых можно найти значение в столбце в Excel VBA.

Скачать Практическое пособие

Найти значение в столбце.xlsm

6 примеров VBA для поиска значения в столбце в Excel

Пусть у нас есть набор данных с информацией о товарах с их ID продукта , Бренд , Модель , Цена за единицу и Идентификатор заказа Наша задача - выяснить соответствие Идентификатор заказа Теперь наша задача - выяснить Идентификатор заказа связанный с ID продукта .

1. Поиск значения в столбце с помощью функции VBA Find

В первом примере мы будем использовать Функция "Найти" в VBA чтобы найти значение в столбце.

📌 Шаги:

  • Перейдите к названию листа в нижней части листа.
  • Нажмите правую кнопку мыши.
  • Выберите Посмотреть код опцию из списка.

  • Откроется окно VBA. Затем выберите Модуль из Вставка вариант

  • Теперь напишите следующий код в консоли VBA
 Sub Find_Value() Dim ProductID As Range Range("D4").ClearContents Set ProductID = Range("B8:B19").Find(What:=Range("C4").Value, _ LookIn:=xlValues, LookAt:=xlWhole) If Not ProductID Is Nothing Then Range("E5").Value = ProductID.Offset(, 4).Value Else MsgBox "No Matched Data Found !!!" End If End Sub 

  • Теперь вставьте кнопку в набор данных.
  • Перейти к Разработчик вкладка.
  • Выберите Кнопка ( Контроль формы ) из Вставка секция.

  • Дайте любое имя кнопке. Например, я даю ей имя Поиск .

  • Назначьте код для этой кнопки.
  • Выберите кнопку и нажмите правую кнопку мыши.
  • Выберите Назначить макрос из списка.

  • Выберите нужный макрос из списка Назначить макрос окно.
  • Затем нажмите OK .

  • Теперь напишите любой ID продукта и нажмите на Поиск кнопка.

Мы видим, что совпадений нет, так как этот номер продукта отсутствует в списке.

  • Положите другой ID продукта и снова нажмите кнопку Поиск кнопка.

Мы получаем номер заказа для данного ID продукта .

Читать далее: Как получить значение ячейки по строке и столбцу в Excel VBA

2. VBA для поиска значений из разных рабочих листов

Теперь в этом разделе мы проделаем то же самое, что описано выше, но для разных листов. Предположим, что информация о нашем продукте находится в разделе Лист 2 , а поле поиска находится в Лист 3 Теперь мы напишем код VBA, чтобы мы могли искать ID заказа, используя ID продукта. Лист 3 .

Лист 2:

Sheet3:

📌 Шаги:

  • Выполните те же действия, что и в шаг 1 на шаг 2 из предыдущего метода, чтобы открыть консоль VBA
  • Теперь напишите следующий код в консоли VBA
 Sub Find_Value_from_worksheets() Dim rng As Range Dim ProductID As String Dim rownumber As Long ProductID = Sheet3.Cells(4, 3) Set rng = Sheet2.Columns("B:B").Find(What:=ProductID, _ LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) rownumber = rng.Row Sheet3.Cells(5, 5).Value = Sheet2.Cells(rownumber, 6).Value End Sub 

  • Теперь снова вставьте кнопку, как в предыдущем случае.
  • Затем назначьте кнопке код макроса.

  • Введите любой ID продукта и нажмите на Выполнить кнопка

Читать далее: Поиск значения в столбце и возврат значения другого столбца в Excel

3. Найти и отметить значение в столбце

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

📌 Шаги:

  • Выполните те же действия из шаг 1 на шаг 2 как в предыдущем методе, чтобы открыть консоль VBA
  • Теперь напишите следующий код в консоли VBA
 Sub Find_and_Mark() Dim strAddress_First As String Dim rngFind_Value As Range Dim rngSrch As Range Dim rng_Find As Range Set rng_Find = ActiveSheet.Range("G1:G16") Set rngSrch = rng_Find.Cells(rng_Find.Cells.Count) Set rngFind_Value = rng_Find.Find("Pending", rngSrch, xlValues) If Not rngFind_Value Is Nothing Then strAddress_First = rngFind_Value.Address rngFind_Value.Font.Color = vbRed Do SetrngFind_Value = rng_Find.FindNext(rngFind_Value) rngFind_Value.Font.Color = vbRed Loop Until rngFind_Value.Address = strAddress_First End If End Sub End Sub 

  • Теперь перейдите на рабочий лист и запустите код.
  • См. вывод в таблице.

Читать далее: Как найти наибольшее значение в столбце Excel (4 метода)

4. VBA для поиска значений в столбце с помощью подстановочных знаков

Наконец, мы рассмотрим, как можно искать или находить значения в столбцах с помощью символов подстановки в Excel VBA. Для этого метода мы снова используем тот же набор данных, что и выше. Наша задача - найти цены на товары по их Модели. Мы можем ввести либо полное название, либо последние/первые символы ID продукта .

📌 Шаги:

  • Выполните аналогичные действия из шаг 1 на шаг 2 как в предыдущем методе, чтобы открыть консоль VBA
  • Теперь напишите следующий код в консоли VBA
 Sub Find_Using_Wildcards() Set myerange = Range("B5:G16") Set ID = Range("D19") Set Price = Range("F20") Price.Value = Application.WorksheetFunction.VLookup _ ("*" & Range("D19") & "*", myerange, 4, False) End Sub 

  • Снова вставьте кнопку, как в предыдущем случае.
  • Теперь назначьте код макроса кнопке.

  • Теперь введите любой частичный ID продукта и нажмите кнопку Выполнить кнопка.

Читать далее: Как найти наименьшее значение в столбце Excel (6 способов)

5. Excel VBA для поиска максимального значения в столбце

Здесь мы хотим найти максимальное значение столбца с помощью кода VBA.

📌 Шаги:

  • Мы хотим выяснить максимальную цену.

  • Теперь поместите следующий код VBA в новый модуль.
 Sub Column_Max() Dim range_1 As Range Set range_1 = Application.InputBox(prompt:="Select Range", Type:=8) Max_Column = WorksheetFunction.Max(range_1) MsgBox Max_Column End Sub 

  • Затем нажмите кнопку F5 чтобы запустить код VBA.
  • Сайт Вход появится диалоговое окно.
  • Выберите диапазон из набора данных.

  • Наконец, нажмите кнопку OK кнопка.

Мы видим, что в диалоговом окне отображается максимальное значение.

6. Excel VBA для поиска последнего значения в столбце

Здесь мы хотим узнать значение последней строки или ячейки определенного столбца. Например, мы хотим узнать последний продукт из столбца Product

📌 Шаги:

  • Введите VBA код ниже на модуле.
 Sub last_value() Dim L_Row As Long L_Row = Cells(Rows.Count, "B").End(xlUp).Row MsgBox Cells(L_Row, 2).Value End Sub 

  • Затем запустите код, нажав кнопку F5 кнопка.

Последнее значение отображается в диалоговом окне.

Читать далее: Как найти последнее вхождение значения в столбец в Excel (5 методов)

О чем следует помнить

Некоторые распространенные ошибки:

  • Ошибка: Одна ценность за раз. Потому что НАЙТИ метод может найти только одно значение за один раз.
  • Ошибка: #NA в VLOOKUP Если искомое значение отсутствует в данном наборе данных, то эта функция вернет следующее значение #NA ошибка.
  • Range("Cell_Number").ClearContents используется для удаления предыдущего значения из ячейки. В противном случае предыдущее значение необходимо удалить вручную.

Заключение

Это некоторые способы поиска значений в столбцах с помощью кода VBA в Excel. Я показал все методы с соответствующими примерами, но может быть много других итераций. Я также обсудил основы используемых функций. Если у вас есть другой метод достижения этой цели, пожалуйста, не стесняйтесь поделиться им с нами. Посетите наш сайт ExcelWIKI для получения других интересных статей по Excel.

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