Съдържание
По отношение на търсенето или преглеждането на определени стойности или елементи MS Excel предоставя различни функции. VLOOKUP Тя ни помага да търсим желани данни от всяка съвкупност от данни. Тя ни позволява да посочим дали да търсим точно съвпадение или приблизително съвпадение. Наред с използването на тази функция във формулата на Excel, можем да я използваме и във VBA код. В тази статия ще видим как можем да използваме тази Функция VLOOKUP във VBA.
Изтегляне на работната тетрадка за упражнения
VLOOKUP във VBA.xlsm4 начина за използване на 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 Показах всички методи със съответните им примери, но може да има много други повторения. Обсъдих и основите на използваните функции. Ако имате друг метод за постигане на това, моля, не се колебайте да го споделите с нас.