установить формулу в excel, игнорируя культуру

Моя проблема в том, что я использую Interop для установки формул в Excel, но моя формула на английском языке, мой Excel на португальском языке в Бразилии, поэтому, когда я пытаюсь определить формулу, возникает ошибка. Есть ли способ определить культуру для моей книги или игнорировать культуру?

 const string ValidaNascimento = "=IF((INT((NOW()-E{0})/366,25))>65;FALSE;TRUE)";

 rng = (Excel.Range)oSheet.get_Range(oSheet.Cells[row, 6], oSheet.Cells[row, 6]);

 rng.Formula = ValidaNascimento;//string.Format(ValidaNascimento, row);

person José Arthur Ortiz Antunes    schedule 23.05.2013    source источник
comment
покажите часть вашего кода, где вы это делаете... еще одна вещь - проверьте свойства .Formula и .FormulaLocal, которые могут предоставить необходимое вам решение.   -  person Kazimierz Jawor    schedule 24.05.2013
comment
const string ValidaNascimento = =IF((INT((NOW()-E{0})/366,25))›65;FALSE;TRUE); rng = (Excel.Range)oSheet.get_Range(oSheet.Cells[строка, 6], oSheet.Cells[строка, 6]); rng.Formula = string.Format(ValidaNascimento, row);   -  person José Arthur Ortiz Antunes    schedule 24.05.2013
comment
ваша функция "=if(...) неверна. это не языковая проблема. Одна ошибка: используйте point вместо comma для разделения десятичной части чисел . Second, check e{0}`, которая не определена в вашем примере.   -  person Kazimierz Jawor    schedule 24.05.2013


Ответы (1)


Использование международных (независимых от языка) формул

  • Английские имена (как у вас)
  • . для десятичного числа
  • , для разделения параметров

Так что используйте

ValidaNascimento = "=IF((INT((NOW()-E{0})/366.25))>65,FALSE,TRUE)"
person chris neilsen    schedule 24.05.2013
comment
Не знаю, какой у вас E{0}, поэтому не могу это комментировать. - person chris neilsen; 24.05.2013