Имя: Пароль:
1C
1С v8
COM Excel Промежуточные итоги
0 1Сергей
 
09.08.18
10:29
Добрый день, дамы и господа!

Никак не получается в excel-е через СОМ установить промежуточные итоги.


            ИначеЕсли (ИмяЯчейки = "Qty") ИЛИ (ИмяЯчейки = "Sum") тогда
                
                Ехель.Columns(Идн).NumberFormat = "# ##0,00";
                //Ехель.Cells(ЧислоСтрок + 1,Идн).FormulaR1C1 = "=SUBTOTAL(109,[" + ИмяЯчейки + "])";
                //Ехель.Cells(ЧислоСтрок + 1,Идн).FormulaR1C1 = "=SUBTOTAL(109,[R[-" + Формат(ЧислоСтрок, "ЧГ=") + "]C:R[-1]C)";
                Ехель.Cells(ЧислоСтрок + 1,Идн).FormulaR1C1Local = "=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(109;[" + ИмяЯчейки + "])";



Во всех случаях выскакивает подобная ошибка:
{ВнешняяОбработка.ИзXMLвXLSX.Форма.Форма.Форма(83)}: Ошибка при установке значения атрибута контекста (FormulaR1C1Local)
                Ехель.Cells(ЧислоСтрок + 1,Идн).FormulaR1C1Local = "=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(109;[" + ИмяЯчейки + "])";
по причине:
Произошла исключительная ситуация (0x800a03ec)


Подскажите, пожалуйста, как победить?
1 Deon
 
09.08.18
10:39
Вот эта конструкция должна работать хорошо:
Ехель.Cells(ЧислоСтрок + 1,Идн).FormulaR1C1 = "=SUBTOTAL(109,[R[-" + Формат(ЧислоСтрок, "ЧГ=") + "]C:R[-1]C)"

Только у тебя тут лишняя открывающая скоба [ перед первым R стоит
2 1Сергей
 
09.08.18
10:43
(1) Вот, блин. Слона-то я и не приметил :)

Огромное человеческое спасибо!
3 Deon
 
09.08.18
10:43
А если у тебя область именованная, то скобок не надо:
Ехель.Cells(ЧислоСтрок + 1,Идн).FormulaR1C1Local = "=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(109;" + ИмяЯчейки + ")";
4 1Сергей
 
09.08.18
10:59
(3) Да, работает, спасибо
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший