|
Пересчет формулы в Excel |
☑ |
0
pv94384
27.10.21
✎
14:34
|
Добрый день.
Из 1С передаю формулу в Excel и обратно хочу получить результат этой формулы. Формула передается, вроде бы всё хорошо, но вот результат не высчитывается. Пытаюсь сделать пересчет - всё равно результат 0. Хотя если вбить эту формулу в эксель, то отрабатывает и результат отличен от 0. Что я делаю не так?
Excel.Cells(1, 1).FormulaR1C1 = "=SUM(R[4805]C[16]:R[4963]C[16])";
Excel.Sheets(1).Calculate();
Сообщить(Excel.Cells(1, 1).value);
|
|
1
Кирпич
27.10.21
✎
14:45
|
Мож так
Excel.Sheets(1).Range(1, 1).FormulaR1C1 = "=SUM(R[4805]C[16]:R[4963]C[16])";
|
|
2
pv94384
27.10.21
✎
14:48
|
(1) Ошибка при вызове метода контекста (Range)
|
|
3
Кирпич
27.10.21
✎
14:54
|
ну Cells(1,1) попробуй
|
|
4
garantNo4x
27.10.21
✎
14:55
|
ну включи на листе авторасчет и посмотри что будет ...
|
|
5
SSSSS_AAAAA
27.10.21
✎
14:55
|
(0) "Excel.Cells(1, 1)" - а теперь вопрос: а на каком листе эта ячейка?
То есть для пересчета таки указывается на каком листе пересчитывать (Excel.Sheets(1).Calculate();), а для ячейки не надо?
|
|
6
pv94384
27.10.21
✎
15:03
|
(3) Результат 0
(4) если речь об этом
Excel.Sheets(1).Calculate();
то результат тоже 0.
(5)
Excel.Sheets(1).Cells(1, 1).FormulaR1C1 = "=SUM(R[4805]C[16]:R[4963]C[16])";
результат 0.
|
|
7
SSSSS_AAAAA
27.10.21
✎
15:06
|
(6) ВЕЗДЕ должно быть Excel.Sheets(1).Cells(1, 1), а не только в каких-отдельных строках.
|
|
8
pv94384
27.10.21
✎
15:09
|
(7) Везде по-разному, т.к. пробую разные варианты. Изначально везде было
Excel.Sheets(1).Cells(1, 1).FormulaR1C1 = "=SUM(R[4805]C[16]:R[4963]C[16])";
Excel.Sheets(1).Cells(1, 1).Calculate();
Сообщить(Excel.Sheets(1).Cells(1, 1).value);
результат 0.
|
|
9
SSSSS_AAAAA
27.10.21
✎
15:13
|
(8) Что говорит Сообщить(Excel.Sheets(1).Cells(1, 1).FormulaR1C1); ?
|
|
10
pv94384
27.10.21
✎
15:17
|
(9) =SUM(R[4805]C[16]:R[4963]C[16])
|
|
11
pv94384
27.10.21
✎
15:22
|
Разобрался. Всем спасибо.
Сделал через FormulaLocal = "=СУММ(...)"
|
|
12
Кирпич
27.10.21
✎
15:27
|
У меня так работает
Sheet.Range("A1").Value = 100;
Sheet.Range("B1").Value = 500;
Sheet.Range("C1").Formula = "=SUM(A1:B1)";
и так
Sheet.Range("C1").FormulaLocal = "=СУММ(A1:B1)";
|
|
13
unknown181538
28.10.21
✎
00:34
|
(11) а у меня наоборот русский вариант не работал
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой