Страницы: 1
RSS
Вставить формулу русскими буквами в код VBA
 
Здравствуйте,
подскажите, пожалуйста, как вставить формулу русскими буквами в код VBA
Код
=ЕСЛИОШИБКА(ИНДЕКС(СМЕЩ('2'!A:A;0;5);ПОИСКПОЗ('1'!A2;'2'!A:A;0));"")

/вариант с записью рекордером (вида     ActiveCell.FormulaR1C1
Код
=IFERROR(INDEX(OFFSET('2'!C[-6],0,5),MATCH('1'!RC[-6],'2'!C[-6],0)),"""")")
мне, к сожалению, не подходит, а
Код
ActiveCell.Formula = "=ЕСЛИОШИБКА(ИНДЕКС(СМЕЩ('2'!A:A;0;5);ПОИСКПОЗ('1'!A2;'2'!A:A;0));"")"

ругается ошибкой 1004/
 
Код
ActiveCell.FormulaLocal = ""
Только кавычки всегда надо дополнять еще одними. Сравните как это в записи макрорекордером и примените к формуле на русском.
А вообще запись через Formula на английском более универсальна: она будет работать на ПК под любой локалью, а вот FormulaLocal только на русском.
Изменено: Дмитрий(The_Prist) Щербаков - 26.02.2020 20:23:38
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Благодарю!
Всё заработало!
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
будет работать на ПК под любой локалью
Поскольку речь идет о записи через VBA не могу не уточнить ответ Дмитрия в части свойства Formula: если формула не содержит русские буквы и другие нерелевантные символы (например, в текстовых литералах). Подробности здесь.
Изменено: sokol92 - 26.02.2020 21:11:14
Владимир
 
Цитата
sokol92 написал:
не могу не уточнить ответ
это огромное зло, при этом двойное, как использование локализованных имен функций, так и использование OFFSET. посмотрели что там у вас после записи рекордером в ActiveCell.Formula , это и используйте.
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх