Страницы: 1
RSS
Функция ВПР в VBA
 
Здравствуйте.
Имеется вот такая строчка в коде
Код
For p = 5 To 30
Sheets("Лист1").Cells(p, 5).FormulaLocal = "=ВПР(F2;Лист1!$K$102:$L$4999;2;0)"
next p
Вопрос заключается в следующем: можно ли поменять "F2" на Cells (2,p), чтобы ячейка менялась.
Или может какой-то другой выход есть?
Изменено: Faraon - 27.02.2015 20:52:13
 
можно без цикла сразу в весь диапазон ввести:
Код
Sheets("Лист1").[e5:e30].FormulaLocal = "=ВПР(F2;Лис1!$I$102:$F$4999;2;0)"
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Мне нужно, чтобы искомое значение в ВПР, которое сейчас F2 менялось. Т.е. в каждом цикле будет содержимое другой ячейки искаться.
 
Цитата
можно ли поменять "F2" на Cells (2,p), чтобы ячейка менялась.
Пока писал ответ предложен выше.
Изменено: gling - 27.02.2015 20:10:48
 
А за то, что можно сразу диапазон указывать без цикла - спасибо. Не знал. Так проще.
 
Цитата
gling написал: Могу дать не красивый ответ: "Можно", нам ведь по "барабану" что получится в результате. (Намек: Читайте правила)
Спасибо за совет. Только я в этом деле не много понимаю и поэтому обратился сюда. А вопрос могу сформулировать иначе - как сделать так, чтобы искомое значение бралось не из ячейки F2, а чтобы с каждым циклом из последующей ячейки: на первом круге F2, на втором F3, на третьем F4 и т.д.
Изменено: Faraon - 27.02.2015 20:52:38
 
Faraon, Вы мой ответ попробовали?
или просто поболтать зашли?
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Faraon, чтобы использовать функцию ВПР, необязательно вписывать формулу в ячейку.
Вот так можно получить ряд значений в цикле
Код
For p = 5 To 30
  myValue = Application.VLookup(Sheets("Лист1").Cells(p, 5).Value, Range("Лист1!$K$102:$L$4999"), 2, 0)
  If Not IsError(myValue) Then
    'что-то с ним сделать
  End If
Next p
 
Все спасибо за участие. Отдельное спасибо Казанскому. Именно это мне и нужно было.
 
Разрешите еще один вопрос в рамках этой темы: Есть некая форма, в которой в ячейке , допустим, L4, записана формула "=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;L5:L10)". Мой макрос периодически добавляет новую строку с новыми данными, т.е. появляются данные в ячейке L11. Как макросом изменить изначальную формулу так чтобы она охватила добавленную ячейку. Был вариант макросом просчитывать сумму ячеек исключая скрытые (вы все правильно поняли - это для работы с фильтром), но я не знаю как запускать макрос при изменении фильтра.
 
Какое отношение вопрос имеет к "рамкам темы"? Ответ "мой макрос добавляет" не принимается.
Страницы: 1
Наверх