Страницы: 1
RSS
vlookup при помощи vba, Прошу помощи с кодом
 
Коллеги, всем привет!

Помогите, пожалуйста с кодом для vlookup через vba, на данный момент использую следующее:
Код
With Range(Cells(massive2, 1).Offset(1, 0), Cells(massive2, 1).End(xlDown)).Offset(0, 1)
       .Formula = "=VLOOKUP(=b6324,Vlookup!b$5:c$14,2,0)"
       .Value = .Value
End With

Но проблем в том, что аргумент =b6324 всегда может меняться, а сейчас он стоит константой, ссылаясь на левую ячейку в строке 6234. Поэтому, если мне нужно будет сделать vlookup для значения в ячейке =c1000, формула все равно пойдет в =b6324.

Подскажите, пожалуйста, каким образом можно изменить код, чтобы сделать аргумент динамичным,

Заранее Спасибо!
 
При чем тут vlookup если вопрос в том, что вам надо в строке поменять часть на переменную?
Formula = "=VLOOKUP(" &  AAA & ",Vlookup!b$5:c$14,2,0)"
По вопросам из тем форума, личку не читаю.
 
Цитата
obratka написал:
ссылаясь на левую ячейку в строке
Используйте формулу в стиле R1C1, и менять ничего не придется.
 
Цитата
Казанский написал:
Используйте формулу в стиле R1C1, и менять ничего не придется.
Типа rc[-1]?
 
obratka, да, только FormulaR1С1 указать. Я признаться не обратил внимание на левую ячейку, но лучше б вы написали что в  соседнюю левую.
По вопросам из тем форума, личку не читаю.
 
Всем спасибо, сработало!
 
Здравствуйте форумчане, помогите пожалуйста разобраться. У меня есть формула следующего вида:
" = iferror(vlookup($a$1, if('Лист1'!$b1$b20=c5, 'Лист1'!$a1$z20,""""),5,0,""-"")"
хочу эту формулу прописать в вба с помощью Application.vlookup, но выскакивает ошибка.  Другие формулы подкорректировала под себя, а впр с несколькими условиями мне никак не дается(
 
Kcuxa_xa, Вы хотите кодом VBA вставлять формулу на лист или с ее помощью производить вычисления в коде и на лист выгружать готовое значение?
Лучше покажите в файле-примере. Как есть  - Как надо
П.С. Ваша формула точно работала как надо на листе без VBA?
Изменено: Sanja - 11.06.2019 15:38:21
Согласие есть продукт при полном непротивлении сторон
 
Да верно, раньше я вставляла формулу на лист, а теперь хотела бы что бы результат считался в форме и на лист вставлялось только згачение. Файл не стала прикреплять, так как он очень огромный
 
Sanja, если полностью, то формула выглядела вот так
range("c8").formulaArray = _
" = iferror(vlookup($a$1, if('Лист1'!$b$1:$b$20=c5, 'Лист1'!$a$1:$z$20,""""),5,0,""-"")"
только теперь значения E6 и C12 в текстбоксах и вывести результат соответственно нужно не в C8, а тоже в текстбокс.
 
Цитата
Kcuxa_xa написал: Файл не стала прикреплять, так как он очень огромный
Нужен файл-ПРИМЕР!
Помогающим нужно на чем-то проверять решение, как Вы думаете?
Согласие есть продукт при полном непротивлении сторон
 
Вот похожая тема. Может и Вам чем поможет
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Kcuxa_xa написал:
Файл не стала прикреплять, так как он очень огромный
Создайте (СОЗДАЙТЕ) небольшой аналог.
 
Юрий М, Sanja,  вот сделала небольшой аналог)
Изменено: Kcuxa_xa - 11.06.2019 20:26:51
 
Использовать формулы листа для внутренних расчетов в коде как-то не комильфо. Посмотрите вариант
Скрытый текст
Согласие есть продукт при полном непротивлении сторон
 
Sanja, спасибо Вам большое!!!! Действительно совсем другой подход. А не могли бы вы пожалуйста еще подсказать, я изменила немного форму, что нужно подкорректировать в коде, что бы при выборе значения в комбобоксе, автоматически рассчитывались все текстбоксы?    
 
Как то так.
P.S. Ваш последний вопрос никак не относится к Теме топика. В дальнейшем создавайте свои темы, названия которых будут соответствовать вопросу. И наоборот. И про файл-пример не забывайте
Скрытый текст
Согласие есть продукт при полном непротивлении сторон
 
Sanja,  спасибо Вам огромное))))) даже разобралась))
Страницы: 1
Наверх