|
Программное задание стиля формул эксель в 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
|
xlA1 1
xlR1C1 -4150
|
|
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)";
|
|