Оглавление
В MS Excel нам часто приходится искать или находить значения в наборе данных. Это может быть поиск данных в строках или столбцах. К счастью, Excel предоставляет различные функции и формулы для выполнения подобных задач. С помощью кода Excel VBA мы можем автоматизировать задачу поиска или нахождения значений. В этой статье мы рассмотрим различные способы, с помощью которых можно найти значение в столбце в Excel VBA.
Скачать Практическое пособие
Найти значение в столбце.xlsm6 примеров 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.