Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Ввод формулы Vlookup - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ввод формулы Vlookup (Макросы Sub)
Ввод формулы Vlookup
dadmarat Дата: Вторник, 24.12.2013, 18:27 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010
Есть файл в котором несколько страниц и на каждой таблица с данными. Макрос делает вычисления для каждой страницы и результат записывает на новую страницу. После этого в определенный диапазон пользователь должен вставить таблицу с названием и с числом.
Таблица результата вычислений может быть разной по размерам и тут загвоздка.
Нужно функцией ВПР() выбрать с таблицы, которую вставил пользователь, значение по названию.

Так как размеры таблицы динамически изменяются в зависимости от количества продуктов и количества страниц файла, то формулу Vlookup() могу записать так:
[vba]
Код
Cells(e + 1, sh + 3).Formula = "=Vlookup(Cells(e + 1, 1), Range(Cells(2, sh + 5), Cells(42, sh + 6)), 2, False)"
[/vba] и в Excel'e получаю
Код
=ВПР(Cells(e + 1); Range(Cells(2; sh + 5); Cells(42; sh + 6)); 2; ЛОЖЬ)
.
Как сделать, чтобы вместо Cells(e + 1) был конкретный адресс ячейки/диапазона и возможно ли такое вообще.

Файл не прилагаю, так как информация носит больше общий характер, но если без него никак - могу выложить.


----------------
I can do it!
----------------
 
Ответить
СообщениеЕсть файл в котором несколько страниц и на каждой таблица с данными. Макрос делает вычисления для каждой страницы и результат записывает на новую страницу. После этого в определенный диапазон пользователь должен вставить таблицу с названием и с числом.
Таблица результата вычислений может быть разной по размерам и тут загвоздка.
Нужно функцией ВПР() выбрать с таблицы, которую вставил пользователь, значение по названию.

Так как размеры таблицы динамически изменяются в зависимости от количества продуктов и количества страниц файла, то формулу Vlookup() могу записать так:
[vba]
Код
Cells(e + 1, sh + 3).Formula = "=Vlookup(Cells(e + 1, 1), Range(Cells(2, sh + 5), Cells(42, sh + 6)), 2, False)"
[/vba] и в Excel'e получаю
Код
=ВПР(Cells(e + 1); Range(Cells(2; sh + 5); Cells(42; sh + 6)); 2; ЛОЖЬ)
.
Как сделать, чтобы вместо Cells(e + 1) был конкретный адресс ячейки/диапазона и возможно ли такое вообще.

Файл не прилагаю, так как информация носит больше общий характер, но если без него никак - могу выложить.

Автор - dadmarat
Дата добавления - 24.12.2013 в 18:27
Jhonson Дата: Вторник, 24.12.2013, 19:41 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

[vba]
Код
Cells(e + 1, sh + 3).Formula = "=Vlookup(" & Cells(e + 1, 1).address & "," & Range(Cells(2, sh + 5), Cells(42, sh + 6)).address & ", 2, False)"
[/vba] так попробуйте


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
Сообщение[vba]
Код
Cells(e + 1, sh + 3).Formula = "=Vlookup(" & Cells(e + 1, 1).address & "," & Range(Cells(2, sh + 5), Cells(42, sh + 6)).address & ", 2, False)"
[/vba] так попробуйте

Автор - Jhonson
Дата добавления - 24.12.2013 в 19:41
dadmarat Дата: Вторник, 24.12.2013, 19:54 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010
Работает. Спасибо большое за участвие.


----------------
I can do it!
----------------
 
Ответить
СообщениеРаботает. Спасибо большое за участвие.

Автор - dadmarat
Дата добавления - 24.12.2013 в 19:54
_Boroda_ Дата: Вторник, 24.12.2013, 20:13 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
dadmarat, Если Вы все равно пользуетесь макросом, то зачем Вам лишний раз нагружать лист формулами?
Сделайте сразу расчет внутри макроса и вставьте на лист только значения
[vba]
Код
aa = WorksheetFunction.VLookup(Cells(e + 1, 1), Range(Cells(2, sh + 5), Cells(42, sh + 6)), 2, 0)
Cells(e + 1, sh + 3).Value = aa
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениеdadmarat, Если Вы все равно пользуетесь макросом, то зачем Вам лишний раз нагружать лист формулами?
Сделайте сразу расчет внутри макроса и вставьте на лист только значения
[vba]
Код
aa = WorksheetFunction.VLookup(Cells(e + 1, 1), Range(Cells(2, sh + 5), Cells(42, sh + 6)), 2, 0)
Cells(e + 1, sh + 3).Value = aa
[/vba]

Автор - _Boroda_
Дата добавления - 24.12.2013 в 20:13
dadmarat Дата: Вторник, 24.12.2013, 20:58 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, потому что после вычислений и создания таблицы пользователь должен ввести дополнительные данные, которые влияют на вычисление искомого значения.
У каждого продукта есть свой показатель, изменив долю продукта пользователь может сразу увидеть результат без запуска макроса.


----------------
I can do it!
----------------


Сообщение отредактировал dadmarat - Вторник, 24.12.2013, 20:59
 
Ответить
Сообщение_Boroda_, потому что после вычислений и создания таблицы пользователь должен ввести дополнительные данные, которые влияют на вычисление искомого значения.
У каждого продукта есть свой показатель, изменив долю продукта пользователь может сразу увидеть результат без запуска макроса.

Автор - dadmarat
Дата добавления - 24.12.2013 в 20:58
dadmarat Дата: Среда, 25.12.2013, 11:26 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 3 ±
Замечаний: 0% ±

Excel 2010
Все равно спасибо за участвие в вопросе :)


----------------
I can do it!
----------------
 
Ответить
СообщениеВсе равно спасибо за участвие в вопросе :)

Автор - dadmarat
Дата добавления - 25.12.2013 в 11:26
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ввод формулы Vlookup (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!