Страницы: 1
RSS
Функции листа и функции VBA
 
Многие функции листа присутствуют в VBA и соответственно наоборот. Но есть много функций на листе у которых нет аналога в VBA и в VBA есть функции у которых нет аналога на листе. И если для листа ещё можно написать пользовательскую функцию, включить в неё необходимую функцию VBA и использовать на листе, то в VBA приходится уже изобретать. Так может существует какой-нибудь способ вызывать из кода VBA функции листа, а я о нём просто не знаю? Например на листе есть удобная функция СЖПРОБЕЛЫ, а в VBA приходится писать специальную функцию из нескольких строк для получения такого же результата...
Не стреляйте в тапера - он играет как может.
 
Цитата
Ts.Soft написал:
Например на листе есть удобная функция СЖПРОБЕЛЫ
И так будет со всеми функциями листа :evil::
Код
1
результат = Application.WorksheetFunction.Trim(строка)
 
k61,спасибо!
Как вызывать функцию листа из VBA понятно. Только одна проблема - на листе я знаю их в русскоязычном написании и догадаться что СЖПРОБЕЛЫ это Trim не всегда можно, тем более что в VBA есть своя Trim с немного другим результатом. Конструкция
Код
1
результат = Application.WorksheetFunction.СЖПРОБЕЛЫ (строка)
не работает. Есть ли где-нибудь таблица соответствий русских названий функций листа с их англоязычными аналогами?
Не стреляйте в тапера - он играет как может.
 
Есть - ищите у себя funcs.xls (или может уже xlsx/xlsm)
Но есть и такой вариант - встать на ячейку с формулой и в окне отладки  выполнить
?selection.formula
Изменено: Hugo - 08.06.2016 08:37:59
 
можно макрорекодером записать вставку той, или иной функции и посмотреть как она должна выглядеть, чтоб VBA ее понял
 
Не помню где взял, но Автору еще раз спасибо.
Согласие есть продукт при полном непротивлении сторон
 
В окне Immediate [Ctrl+G] можно подсмотреть перевод формулы активной ячейки -
Цитата
?ActiveCell.FormulaLocal
=СЖПРОБЕЛЫ(A1)
?ActiveCell.Formula
=TRIM(A1)
Извиняюсь, вариант уже предлагался выше :oops:
Изменено: Апострофф - 08.06.2016 09:01:44
 
Hugo, спасибо - нашел: "C:\Program Files\Microsoft Office\Office14\1049\FUNCS.XLS" - именно то что нужно, хотя в окне отладки получается посмотреть быстрее :)
Ivan.kh, спасибо, как-то раньше никогда не записывал вставку функции макрорекордером...
Sanja, это переименованный FUNCS.XLS
Не стреляйте в тапера - он играет как может.
 
У меня кстати этого FUNCS.XLS в системе нет, т.к. Эксель английский (поэтому точно место не подсказал) - но помню что в локализованных должен быть.
 
Цитата
Ts.Soft написал:
это переименованный FUNCS.XLS
Хм, точно. Не знал
Согласие есть продукт при полном непротивлении сторон
 
Еще один справочник-соответствие:
Соответствие английских и русских функций в Excel + описание
Изменено: Мотя - 08.06.2016 18:15:54
Страницы: 1
Читают тему
Loading...