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

Вход

Регистрация

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

 

= Мир MS Excel/Вставка функции ВПР в код макроса, таблица из аргументов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вставка функции ВПР в код макроса, таблица из аргументов (Макросы/Sub)
Вставка функции ВПР в код макроса, таблица из аргументов
antycapral Дата: Четверг, 09.04.2015, 12:32 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
Здраствуйте.
Есть маленькая проблемка. Причина которой мое незнание многих тонкостей ВБА
Внести в код макроса формулу вида
Код
=ВПР(E2&D2 ; $L$5:$M$35 ; 2 ; 0) = I2
проблем не вызывает и знаний на это хватает.
Но вот если ВПР преобразовать в такой вид:
Код
=ВПР(E9&D9;{"20TS100";"20TS100":"20TS300";"20TS100":"20TP200";"20TP200" ... "Met":"32MPE100";"Met"} ;2;0)=I9

То есть заменить таблицу , на массив данных , для того чтобы уйти от справочной таблицы.
У меня выскакивает ошибка.
Вопрос:
Как правильно указать в коде VBA эту таблицу для ВПР в которой происходит поиск данных в виде {"20TS100";"20TS100" ... "Met":"32MPE100";"Met"} ???

[vba]
Код
Range("G2", "G8").FormulaR1C1 = "=VLOOKUP(RC[-2]&RC[-3], R5C12:R35C13 ,2,0)=RC[2]"
[/vba]

Необходимо заменить R5C12:R35C13 на {"20TS100";"20TS100" ... "Met":"32MPE100";"Met"}
Подскажите как это реализовать? или может есть какой то другой путь решения этой задачи ?
Заранее спасибо.
К сообщению приложен файл: __.xls (25.0 Kb)
 
Ответить
СообщениеЗдраствуйте.
Есть маленькая проблемка. Причина которой мое незнание многих тонкостей ВБА
Внести в код макроса формулу вида
Код
=ВПР(E2&D2 ; $L$5:$M$35 ; 2 ; 0) = I2
проблем не вызывает и знаний на это хватает.
Но вот если ВПР преобразовать в такой вид:
Код
=ВПР(E9&D9;{"20TS100";"20TS100":"20TS300";"20TS100":"20TP200";"20TP200" ... "Met":"32MPE100";"Met"} ;2;0)=I9

То есть заменить таблицу , на массив данных , для того чтобы уйти от справочной таблицы.
У меня выскакивает ошибка.
Вопрос:
Как правильно указать в коде VBA эту таблицу для ВПР в которой происходит поиск данных в виде {"20TS100";"20TS100" ... "Met":"32MPE100";"Met"} ???

[vba]
Код
Range("G2", "G8").FormulaR1C1 = "=VLOOKUP(RC[-2]&RC[-3], R5C12:R35C13 ,2,0)=RC[2]"
[/vba]

Необходимо заменить R5C12:R35C13 на {"20TS100";"20TS100" ... "Met":"32MPE100";"Met"}
Подскажите как это реализовать? или может есть какой то другой путь решения этой задачи ?
Заранее спасибо.

Автор - antycapral
Дата добавления - 09.04.2015 в 12:32
_Boroda_ Дата: Четверг, 09.04.2015, 12:37 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Если именно так, как Вы хотите, то
Поправил немного, сначала было неверно
[vba]
Код
Sub ее()
      Range("G2").FormulaR1C1 = _
          "=VLOOKUP(RC[-2]&RC[-3],{""20TS100"",""20TS100"";""20TS300"",""20TS100"";""20TP200"",""20TP200"";""20TH100"",""20TH"";""18TH100"",""18TH"";""20WCS200"",""20WCS200"";""35WL100"",""35WL"";""35Wi100"",""35Wi"";""35Wi101"",""35Wi"";""35TL100"",""35TL100"";""30TL200"",""30TL200"";""40TC200"",""40TC"";""40TC201"",""40TC"";""35TC200"",""35TC"";""30TC200"",""30TC"";""30TC201"",""C"";""25TC200"",""25TC"";""20TC200"",""20TC"";""20TC201"",""20TC"";""15TC200"",""15TC"";""12MC100"",""Met"";""15MC100"",""Met"";""20MC100"",""Met"";""20MC101"",""Met"";""20MC300"",""Met"";""20MC320"",""Met"";""20MC323"",""Met"";""30MC100"",""Met"";""30MC101"",""Met"";""40MC100"",""Met"";""32MPE100"",""Met""},2,0)=RC[2]"
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕсли именно так, как Вы хотите, то
Поправил немного, сначала было неверно
[vba]
Код
Sub ее()
      Range("G2").FormulaR1C1 = _
          "=VLOOKUP(RC[-2]&RC[-3],{""20TS100"",""20TS100"";""20TS300"",""20TS100"";""20TP200"",""20TP200"";""20TH100"",""20TH"";""18TH100"",""18TH"";""20WCS200"",""20WCS200"";""35WL100"",""35WL"";""35Wi100"",""35Wi"";""35Wi101"",""35Wi"";""35TL100"",""35TL100"";""30TL200"",""30TL200"";""40TC200"",""40TC"";""40TC201"",""40TC"";""35TC200"",""35TC"";""30TC200"",""30TC"";""30TC201"",""C"";""25TC200"",""25TC"";""20TC200"",""20TC"";""20TC201"",""20TC"";""15TC200"",""15TC"";""12MC100"",""Met"";""15MC100"",""Met"";""20MC100"",""Met"";""20MC101"",""Met"";""20MC300"",""Met"";""20MC320"",""Met"";""20MC323"",""Met"";""30MC100"",""Met"";""30MC101"",""Met"";""40MC100"",""Met"";""32MPE100"",""Met""},2,0)=RC[2]"
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 09.04.2015 в 12:37
antycapral Дата: Четверг, 09.04.2015, 12:42 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Выдает ошибку, эксель 2003 , так уже пробовал , не получаеться


Screen Shot 04-09-15 at 12.39 PM.PNG
 
Ответить
Сообщение_Boroda_, Выдает ошибку, эксель 2003 , так уже пробовал , не получаеться


Screen Shot 04-09-15 at 12.39 PM.PNG

Автор - antycapral
Дата добавления - 09.04.2015 в 12:42
RAN Дата: Четверг, 09.04.2015, 12:46 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
для того чтобы уйти от справочной таблицы

И чем она помешала?


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
для того чтобы уйти от справочной таблицы

И чем она помешала?

Автор - RAN
Дата добавления - 09.04.2015 в 12:46
antycapral Дата: Четверг, 09.04.2015, 12:46 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
Теперь понял где собака зарыта ))
Заменить все ; на , , а : на ; , и " на ""
Огромное спасибо!


Сообщение отредактировал antycapral - Четверг, 09.04.2015, 17:07
 
Ответить
СообщениеТеперь понял где собака зарыта ))
Заменить все ; на , , а : на ; , и " на ""
Огромное спасибо!

Автор - antycapral
Дата добавления - 09.04.2015 в 12:46
antycapral Дата: Четверг, 09.04.2015, 12:48 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
И чем она помешала?

Отчет выгружается из Оракловской базы , в нем нет возможности хранить этот справочник для ВПР , поэтому нужно все иметь в коде
 
Ответить
Сообщение
И чем она помешала?

Отчет выгружается из Оракловской базы , в нем нет возможности хранить этот справочник для ВПР , поэтому нужно все иметь в коде

Автор - antycapral
Дата добавления - 09.04.2015 в 12:48
RAN Дата: Четверг, 09.04.2015, 12:52 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А что, макрос в этой выгрузке хранить можно?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеА что, макрос в этой выгрузке хранить можно?

Автор - RAN
Дата добавления - 09.04.2015 в 12:52
antycapral Дата: Четверг, 09.04.2015, 12:53 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
макрос в этой выгрузке хранить можно?

Макрос храниться в шаблоне на которую происходит выгрузка из БД
 
Ответить
Сообщение
макрос в этой выгрузке хранить можно?

Макрос храниться в шаблоне на которую происходит выгрузка из БД

Автор - antycapral
Дата добавления - 09.04.2015 в 12:53
antycapral Дата: Четверг, 09.04.2015, 12:54 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
Шаблоны лежат на серваке к которым у меня нет доступа, и править ни кто не разрешит.
 
Ответить
СообщениеШаблоны лежат на серваке к которым у меня нет доступа, и править ни кто не разрешит.

Автор - antycapral
Дата добавления - 09.04.2015 в 12:54
RAN Дата: Четверг, 09.04.2015, 13:01 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Шаблоны лежат на серваке к которым у меня нет доступа

Если нет доступа, как вы работать собираетесь? Даже, если выясните, как в макрос массив прописать?


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Шаблоны лежат на серваке к которым у меня нет доступа

Если нет доступа, как вы работать собираетесь? Даже, если выясните, как в макрос массив прописать?

Автор - RAN
Дата добавления - 09.04.2015 в 13:01
Hugo Дата: Четверг, 09.04.2015, 13:18 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Можно ведь хранить этот список замен в любом другом файле, к которому есть доступ.
А для кода я бы или хранил его на листе в том файле где код, или просто в текстовом файле, если код например в vbs.
И без всяких формул - код всё может сделать лучше. А так прописывать миллион замен прямо в формуле - и гемор, и может места не хватить (правда я не знаю сколько там места...)


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеМожно ведь хранить этот список замен в любом другом файле, к которому есть доступ.
А для кода я бы или хранил его на листе в том файле где код, или просто в текстовом файле, если код например в vbs.
И без всяких формул - код всё может сделать лучше. А так прописывать миллион замен прямо в формуле - и гемор, и может места не хватить (правда я не знаю сколько там места...)

Автор - Hugo
Дата добавления - 09.04.2015 в 13:18
antycapral Дата: Четверг, 09.04.2015, 14:29 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, RAN, Hugo, Спасибо вам еще раз большое, в макрос вписал массив, все работает как хотел.
Мне удобнее хранить табличку в коде.

Всем спасибо за участие и помощь
 
Ответить
Сообщение_Boroda_, RAN, Hugo, Спасибо вам еще раз большое, в макрос вписал массив, все работает как хотел.
Мне удобнее хранить табличку в коде.

Всем спасибо за участие и помощь

Автор - antycapral
Дата добавления - 09.04.2015 в 14:29
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вставка функции ВПР в код макроса, таблица из аргументов (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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