Как да използваме VLOOKUP във VBA (4 начина)

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

По отношение на търсенето или преглеждането на определени стойности или елементи MS Excel предоставя различни функции. VLOOKUP Тя ни помага да търсим желани данни от всяка съвкупност от данни. Тя ни позволява да посочим дали да търсим точно съвпадение или приблизително съвпадение. Наред с използването на тази функция във формулата на Excel, можем да я използваме и във VBA код. В тази статия ще видим как можем да използваме тази Функция VLOOKUP във VBA.

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

VLOOKUP във VBA.xlsm

4 начина за използване на VLOOKUP във VBA

1. Търсене на данни ръчно чрез VLOOKUP във VBA

Нека имаме набор от данни с информация за служителите с техните ID, име, отдел, дата на присъединяване и заплата. Сега нашата задача е да намерим ръчно информация за служителите, като използваме техния ID. В този раздел ще намерим само заплатата на служителя, като използваме неговия ID.

Стъпка 1: Изберете Visual Basic под Разработчик таб (Пряк път Alt + F11 )

Стъпка 2: Тогава ще се появи прозорец. Изберете Модул опция под Вмъкване на бутон

Стъпка 3: Сега напишете следния код в конзолата VBA и натиснете бутона Изпълнявайте бутон (Пряк път F5 )

Код:

 Sub vlookup_function_1() Dim Employee_id As Long Dim salary As Long Employee_id = 1144 Set myerange = Range("B4:F11") salary = Application.WorksheetFunction.VLookup(Employee_id, myerange, 5, False) MsgBox "Employee ID:" & Employee_id & " Salary " & "$" & salary End Sub 

Стъпка 4: Сега ще се появи изскачащо съобщение, което ще покаже информацията.

Прочетете още: VLOOKUP за търсене на текст в Excel (4 лесни начина)

2. Търсене на данни с входни данни чрез VLOOKUP във VBA

Сега нека да видим как можем да търсим или извличаме данни от таблици или диапазони с въвеждане. Както на картинката, ще открием името на въведения идентификатор от таблицата с информация за служителите.

Стъпка 1: Първо отворете конзолата на VBA, като следвате същите стъпки от 1 до 2

Стъпка 2: Сега въведете следния код в прозореца VBA

Код:

 Sub vlookup_function_2() Set myerange = Range("B4:F11") Set ID = Range("D13") Set Name = Range("D14") Name.Value = Application.WorksheetFunction.VLookup(ID, myerange, 2, False) End Sub 

Стъпка 3: Сега въведете всеки идентификатор в клетката D13 и стартирайте кода

Стъпка 4: Сайтът Име която е записана срещу ID, ще бъде показана

Прочетете още: 10 най-добри практики с VLOOKUP в Excel

Подобни четива

  • VLOOKUP не работи (8 причини & решения)
  • Функцията INDEX MATCH срещу VLOOKUP (9 примера)
  • Използване на VLOOKUP с множество критерии в Excel (6 метода + алтернативи)
  • Excel VLOOKUP за намиране на последната стойност в колона (с алтернативи)
  • Excel VLOOKUP за връщане на множество стойности вертикално

3. Намиране на информация с поле за въвеждане чрез VLOOKUP във VBA

Нека да видим как можем да търсим данни, като използваме полето за въвеждане на VBA. За търсенето трябва да използваме VLOOKUP Отново наборът от данни ще бъде същият, но подходът за търсене ще бъде различен. Тук задачата ни е да намерим заплатата на служителя, като въведем ID и отдел.

Стъпка 1: Първо отворете прозореца на VBA, като следвате същата стъпка 1 към стъпка 2

Стъпка 2: Сега въведете следния код в конзолата VBA и Изпълнявайте това

Код:

 Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Next i End Sub 

Стъпка 3: Това ще отпечата комбиниран низ с ID и Department в първата колона

Стъпка 4: Сега отново отидете в конзолата VBA, въведете пълния код и го стартирайте отново

Код:

 Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Next i Dim ID As Long Dim department As String Dim lookup_val As String Dim salary As Long ID = InputBox("Въведете ID на служителя") department = InputBox("Въведете отдела на служителя") lookup_val = ID &; "_" & department OnError GoTo Message check: salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A:F"), 6, False) MsgBox ("The salary of the employee is $" & salary) Message: If Err.Number = 1004 Then MsgBox ("Employee data not present") End If End Sub 

Обяснение на кода

  • На първо място, Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value с помощта на този код съхраняваме конкатенираните стойности на ID и Department в колона A.
  • lookup_val = ID & "_" & department това определя, че стойността за търсене ще бъде ID и департамент.
  • заплата = Application.WorksheetFunction.VLookup(lookup_val, Range("A: F"), 6, False) тук съхраняваме заплатата на избрания служител в променлива с име заплата
  • Ако Err. Number = 1004 Тогава Това е проверка на условия. Проверяваме дали номерът на грешката е 1004 или не. В Excel VBA кодът 1004 означава, че търсената стойност не е намерена, изтрита или премахната.

Стъпка 5: Сега ще се появи изскачащ прозорец като този на снимката. ID и Отдел последователно

Стъпка 6: След натискане на Добре ще се покаже крайният резултат

Стъпка 7: Ако въведете грешен ID или Отдел, ще се появи следното съобщение

Прочетете още: Как да използвате VLOOKUP с множество условия в Excel (2 метода)

4. Намиране на информация с бутон чрез VLOOKUP във VBA

Сега ще видим как можем да открием информация с помощта на бутон, вместо да изпълняваме кода ръчно. Отново наборът от данни ще бъде същият като по-горе.

Стъпка 1: Първо изберете Вмъкване на опция в рамките на Разработчик раздел

Стъпка 2: След това изберете Бутон опция от Вмъкване на

Стъпка 3: Поставете бутона според изискванията си и задайте името му

Стъпка 4: Сега щракнете с десния бутон върху бутона и изберете Присвояване на макрос

Стъпка 5: Сега създайте нов макрос и го наречете vlookup_function_4

Стъпка 6: Напишете следния код в конзолата VBA и Изпълнявайте кодът

Код:

 Sub vlookup_function_4() Dim rng As Range, FinalResult As Variant, Table_Range As Range, LookupValue As Range Set rng = Sheets("Sheet4").Range("D15") Set Table_Range = Sheets("Sheet4").Range("B4:F11") Set LookupValue = Sheets("Sheet4").Range("D14") FinalResult = Application.WorksheetFunction.VLookup(LookupValue, Table_Range, 5, False) rng = FinalResult End Sub 

Стъпка 6: Сега въведете произволен идентификатор и натиснете бутона

Прочетете още: Използване на VBA VLOOKUP за намиране на стойности от друг работен лист в Excel

Нещата, които трябва да запомните

Често срещани грешки Когато те показват
1004 грешка Когато кодът на VBA vlookup не може да намери стойността на lookup_value, той дава грешка 1004.
Функцията VLOOKUP не е намерена във VBA Функцията Vlookup може да бъде извикана в Excel VBA с помощта на WorksheetFunction.
Обработка на грешки Грешката във функцията vlookup може да се контролира с помощта на Посетете ако връща грешка.

Заключение

Това са някои начини за използване на VLOOKUP Показах всички методи със съответните им примери, но може да има много други повторения. Обсъдих и основите на използваните функции. Ако имате друг метод за постигане на това, моля, не се колебайте да го споделите с нас.

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