Имя: Пароль:
1C
 
Программное задание стиля формул эксель в 1С
0 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
Ну и для формул не нужно менять стиль,нужно писать в правильное поле.
5 Конструктор1С
 
31.10.20
17:08
Скорее всего не .Value, а .Formula, и вряд ли схавает локализованную формулу. "=SUMM(R[1]C:R[120]C)";
6 AlexToo
 
02.11.20
13:02
(1) спасибо, теперь понятно что за -4150
7 AlexToo
 
02.11.20
13:02
(2) и так и сяк пробовал, ничего не меняется
8 AlexToo
 
02.11.20
13:06
(5) и Value и Formula и FormulaRC пробовал ничего не меняется, в экселе пишется ошибка, однако если эту ячейку активировать т.е. зайти в нее и нажать энтер то все посчитается т.е. сама формула рабочая.
9 AlexToo
 
02.11.20
13:18
таки заработало если задавать:
Лист.Cells(7,8).FormulaR1C1 = "=SUM(R[1]C:R[120]C)";
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.