Страница 1 из 1

xlSetCellFormula проблемы с языками

Добавлено: 17 июн 2006, 18:56
dp
Горе... Помоги нам кто чем может... :???:

На офисе стоят вперемешку офисы на английском языке и на русском.
И оказывается что формулы для экселя "языкозависимые"

т.е. "русский" эксел не понимает '=SUM()', а "английский" '=СУММ()'

:(

спрашивается - как можно определить "язык" экселя или как проссумировать диапазоны каким-либо способом не используя языкозависимые формулы...

суммировать в vip'e желательно не предлагать - потому как том что пишу это проблематично, да и пользователь должен иметь возможность откорретировать данные в отчете перед выводом на печать

Добавлено: 19 июн 2006, 05:51
Hmyrii
помоему самый логичный и правельный вариант решения это набрасать макрос которым будет реализована твоя функция суммы или какая либо другая ф-ция
уж VisualBasic на точно от язычной версии продукта не зависит
в данном случае я так полгаю из vip-а заполняется екселевский шаблон, вот и накидай в нем макрос, а пользователь потом сможет что то править если надо

Добавлено: 19 июн 2006, 06:30
homak
может попробовать самому посчитать нужное значение в собственную переменную, а потом уже вывести её значение ... :smile:

Добавлено: 19 июн 2006, 17:14
dp
Hmyrii
да не получится... потому как сумма должна изменяться с изменением значений в колонках...

или я не знаю как повесить макрос, чтобы он постоянно работал, отслуживая изменения на листе...хотя он наверное торрррмозить будет аж жуть

Добавлено: 20 июн 2006, 05:00
Hmyrii
да нет же все получится
в екселе есть ф-ции, куча разных и в том числе СУММ (или если англоязычный ексель то SUM)
так вот ты пишешь макрос который будет реализовывать еще одну ф-цию, например MyMultylanguageSumm(a,b) - где a и b входные параметры, то есть от куда по кудо суммировать ячйеки
и все, на этом писанина макроса заканчивается. таким образом у тебя в наборе будет еще одна ф-цию собственно говоря не чем не отличающаяся от стандартных
далее ты вызываешь эту ф-цию так же как и все стандартные, можешь из VIP-а, можешь потом при правке шаблона, вставить ее куда надо
при этом она как и стандартная сумма будет работать, то есть меняешь какую то ячейку из ее диапазон, и она сомо собой пересчитыавет
тормозить не будет, проверенно, приходилось жуткие формулы воять так как стандартными обойтись просто не удавалось
источников по визуал бейсику в инете навалом, так что дерзайте и думаю СЧАСТЬЕ НЕИЗБЕЖНО КАК ВОСХОД СОЛНЦА :smile:

Добавлено: 20 июн 2006, 12:03
dp
Hmyrii
спасибо - буду пробывать

Добавлено: 13 янв 2010, 20:01
Ksenia
Подниму еще раз темку. Проблема так и соталась на 8.1. Пишу и тестирую отчет под русский офис xlSetCellFormula('=СУММ , а у заказчика удалённого есть и англоязычный и русскоязычный офисы, т.е. решать броблему макросом? А нельзя ли в коде вычислить функцией какой используется офис и в зависимости от результата писать СУММ или SUM?

Добавлено: 13 янв 2010, 21:00
galover
Если Ofiice 2003 или выше, то лучше писать формулы на англицком, их любой офис поймет. http://www.tyumbit.ru/gal_forum/viewtopic.php?t=9236

Добавлено: 14 янв 2010, 14:02
Ksenia
спасибо! эту темку не отследила.