Вход | Регистрация
 

Программное задание стиля формул эксель в 1С

Программное задание стиля формул эксель в 1С
Я
   AlexToo
 
30.10.20 - 14:21
Всем привет! Ситуация нужно выгружать из 1С отчет с формулами. Собственно пытаюсь задать формулу программно =СУММ(R[1]C:R[120]C), задается, но при открытии файла в ячейке с формулой ошибка "не допустимое имя". Грешу на стиль формулы, при этом программно задаю стиль R1C1, в котором и открывается файл. Но смущает то, что если задать стиль A1 откроется всё равно в стиле R1C1. И в отладчике видно, что свойство Эксель.Application.ReferenceStyle числовое со значением -4150 и это значение не меняется, что бы не пытался присвоить. Как правильно указать стиль формулы, что бы открывалось корректно?

Эксель = Новый COMОбъект("Excel.Application");
        Эксель.Application.ReferenceStyle = "xlR1C1";
        Эксель.Application.ErrorCheckingOptions.InconsistentFormula = Ложь;
        Эксель.visible=-1;  
        Книга = Эксель.Workbooks.Open(Путь);
        Лист = Книга.WorkSheets(1);
        
        Лист.Cells(7,8).Value = "=СУММ(R[1]C:R[120]C)";
        
        Книга.Save();
   Кирпич
 
1 - 30.10.20 - 14:52
   ДедМорроз
 
2 - 31.10.20 - 16:40
Какой Value
Или Formula или FormulaRC
   ДедМорроз
 
3 - 31.10.20 - 16:41
В value пишется значение,то есть в вашем случае строка и Excel ее вычислять не будет.
   ДедМорроз
 
4 - 31.10.20 - 16:41
Ну и для формул не нужно менять стиль,нужно писать в правильное поле.
   Конструктор1С
 
5 - 31.10.20 - 17:08
Скорее всего не .Value, а .Formula, и вряд ли схавает локализованную формулу. "=SUMM(R[1]C:R[120]C)";
   AlexToo
 
6 - 02.11.20 - 13:02
(1) спасибо, теперь понятно что за -4150
   AlexToo
 
7 - 02.11.20 - 13:02
(2) и так и сяк пробовал, ничего не меняется
   AlexToo
 
8 - 02.11.20 - 13:06
(5) и Value и Formula и FormulaRC пробовал ничего не меняется, в экселе пишется ошибка, однако если эту ячейку активировать т.е. зайти в нее и нажать энтер то все посчитается т.е. сама формула рабочая.
   AlexToo
 
9 - 02.11.20 - 13:18
таки заработало если задавать:
Лист.Cells(7,8).FormulaR1C1 = "=SUM(R[1]C:R[120]C)";

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.