|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
Здравствуйте, Подскажите, как используя VBA можно передать в переменную значение, полученное например от функции ВПР... ? Можно записать значение от функции ВПР в ячейку, как в п.1, но в ячейке отражается конечно и формула ВПР... 1) Cells(5, 5).Formula = "=VLOOKUP($D7,'C:\[Bill.xlsx]Phone'!$A$2:$D$60,4,0)" Попытался записать в переменную, используя п.2, но в переменную также переносится и формула расчета. 2) Rezult = ["=VLOOKUP($D7,'C:\[bill.xlsx]Phone'!$A$2:$D$60,4,0)"] Что и видно, когда используешь п.3 3) Cells(5, 10).Value = Rezult А вот попробовал еще использовать WorksheetFunction.VLOOKUP, но не могу с синтаксисом разобраться. 4) Rezult = WorksheetFunction.VLOOKUP($D7,’C:\[bill.xlsx]Phone'!$A$2:$D$60,4,0) не работает Кто поможет разобраться , как передать через VBA значение ВПР в переменную Rezult ? И что неправильно с синтаксисом в п.4 ? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 22:42 |
|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
Yuri KR не могу с синтаксисом разобраться Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 09:24 |
|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
The_Prist, Добрый день! Да Вы правы. Сейчас все работает правильно, Спасибо большое! Всем хорошего дня! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 09:59 |
|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
The_Prist, добрый день! Подскажите пожалуйста, как можно в VBA использовать переменные в функции Range ? Например, выражение 1 работает корректно. 1). Range(Cells(1, 10), Cells(1, 10)).Value = 300 Вместо Cell (1,10) хотел бы использовать Cell (I,K) .... Пытаюсь по аналогии заменить Range("$A2:$D$61") на Range(Cells(2, 1), Cells(61, 4)) - вылетает ошибка 1004 Применяю совместно с LOOKUP. Выражение 2 работает корректно, выражение 3 с ошибкой 1004. 2). Rezult3 = WorksheetFunction.VLookup(Range(Cells(7, 4), Cells(7, 4)), Workbooks("bill.xlsx").Sheets("Phone").Range("$A2:$D$61"), 4, 0) 3). Rezult3 = WorksheetFunction.VLookup(Range(Cells(7, 4), Cells(7, 4)), Workbooks("bill.xlsx").Sheets("Phone").Range(Cells(2, 1), Cells(61, 4)), 4, 0) При этом доступ к файлу и листу есть. Workbooks.Open "D:\Test\Bill.xlsx" ActiveSheet.Name = "Phone" Может есть какие идеи? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 12:30 |
|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
Yuri KR выражение 3 с ошибкой 1004. Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 13:12 |
|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
Akina, попробовал, вы все логично написали, но выдает ту же 1004 ошибку, скрин прилагаю в файле. может дело в том, что в Lookup работает с двумя листами, которые не находятся в одной книге? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 15:10 |
|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
Yuri KR может дело в том, что в Lookup работает с двумя листами, которые не находятся в одной книге? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2021, 18:35 |
|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
Akina, доброе утро! да все логично, спасибо, в целом подход понятен и основная часть работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2021, 09:16 |
|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
Добрый день! В продолжении темы, появился вопрос с обработкой ошибки, когда VLookup не находит данные. Не могу перехватить ошибку, если используется WorksheetFunction.VLookup Не получается использовать: Код: vbnet 1. 2.
Rezult_Logic всегда False, даже на строках, где данные не найдены. Если используется Application.VLookup - ошибка перехватывается. Тогда строчка выглядит ка книже и все работает. Код: vbnet 1. 2.
Но хотелось бы использовать, если надо и функционал WorksheetFunction.VLookup и научиться перехватывать такие ошибки. Кто поможет? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2021, 12:52 |
|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
Yuri KR, Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2021, 13:02 |
|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
big-duke, спасибо! проверил, работает. только если в цикле выполнять, то все корректно отрабатывает до первой ошибки, далее ошибка перехватывается и обрабатывается, а потом странность - ошибка не сбрасывается и выражение всегда становится ошибочным, хотя данные точно есть. Почему? For i=1 to 100 On Error Resume Next Debug.Print Application.WorksheetFunction.VLookup(Range(ah.Cells(L, H1), ah.Cells(L, H1)), sh.Range(sh.Cells(N1, P1), sh.Cells(N2, P2)), H, 0) If Err Then MsgBox "Error" End If On Error GOTO 0 Next I Вышел из положения тем, что включил в тело цикла - On Error Resume Next и в конце цикла добавил On Error GOTO 0 для сброса контроля ошибок, но это "костыль". ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2021, 16:21 |
|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
Yuri KR Почему? Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2021, 10:06 |
|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
The_Prist Yuri KR Почему? Код: vbnet 1. 2. 3. 4.
Кстати, если записать так: Код: vbnet 1. 2.
то сообщение об ошибке появляется не будет, но ошибка будет генерироваться. Полезно, если не хочется использовать On Error Resume Next. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2021, 10:08 |
|
Как используя VBA можно передать в переменную значение, полученное от VLOOKUP?
|
|||
---|---|---|---|
#18+
The_Prist, спасибо, со сбросом ошибки все заработало как надо! Вообще получается, что использование VLookup для имеет свои нюансы, если нет данных... хочу попробовать использовать Range.Find, или INDEX с MATCH. Но там скорее всего выплывут свои нюансы :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2021, 11:14 |
|
|
start [/forum/topic.php?desktop=1&fid=61&tid=2171742]: |
0ms |
get settings: |
17ms |
get forum list: |
10ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
25ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
287ms |
get tp. blocked users: |
2ms |
others: | 311ms |
total: | 662ms |
0 / 0 |