Имя: Пароль:
1C
1С v8
Формула Excel из 1C
0 Franklin
 
20.11.13
08:48
Подскажите пожалуйста, в отчете 1с в значение ячейки записываю Формулу Excel =СУММ(R[-9]C). При сохранении в XLS и последующем открытии формула есть, но значение не пересчитывается, приходится перещелкивать или нажимать F2 и enter.
Как сделать чтобы формулы автоматически рассчитывались?
1 бомболюк
 
20.11.13
08:57
а как формулу назначаешь покажи.
2 Лодырь
 
20.11.13
08:58
Calculate
3 Franklin
 
20.11.13
09:02
(1)Например так:
Формула = "=СУММ(R[-9]C)";
ОбластьСтрока.Параметры.Значение=Формула;
4 бомболюк
 
20.11.13
09:03
вряд ли 1С на такое способна. используй Excel.Application, и там FormulaR1C1
5 МойКодУныл
 
20.11.13
09:11
Напиши  собственную кнопку сохранения в excel.
Когда-то столкнулся с такой проблемой - помогло.
6 МойКодУныл
 
20.11.13
09:13
типа снача сохраняешь файл, потом чуруз excel app открываешь и еще раз сохраняешь:) типа открыл, save(), quit()
7 Rie
 
20.11.13
09:17
(4) +100500
8 МойКодУныл
 
20.11.13
09:23
(7)ах, да без Formula не обойтись.
9 Franklin
 
20.11.13
09:33
(4) спасибо. пробую
10 Franklin
 
20.11.13
09:36
(6) не думаю что так может получиться.
11 Franklin
 
20.11.13
10:08
А подскажите как оперировать FormulaR1C1 ?
12 dk
 
20.11.13
10:13
(11) сходи в поиск по Excel.Application
13 dk
 
20.11.13
10:14
либо по FormulaR1C1 ))
14 Franklin
 
20.11.13
11:02
ОбластьПараметр.Value = ОбластьПараметр.FormulaR1C1;
Вычисляет правильно, а в ячейке #имя?
15 KishMish
 
20.11.13
11:07
(0) myCell.FormulaR1C1 = newValue
16 Franklin
 
20.11.13
11:51
Спс. А можно ли методом "Find" найти все ячейки начинающиеся с определенного символа?
17 KishMish
 
20.11.13
13:07
(16)
не знаю не искал, но вот строка которая заменяет значения, может поможет

ThusRange.Replace What:=What, Replacement:=Replacement, LookAt:=myLookAt, SearchOrder:=xlByRows,
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
18 Franklin
 
20.11.13
13:27
Вот так получилось. Может кто знает как быстрее можно?
Rows    = ExcelФайл.ActiveSheet.UsedRange.Rows.Count;
        Columns    = ExcelФайл.ActiveSheet.UsedRange.Columns.Count;
        Для Стр=27 По Rows Цикл
            Для Кол=1 По Columns Цикл
                Ячейка=ExcelЛист.Cells(Стр,Кол);
                Если Ячейка.Value = Неопределено Тогда
                    Продолжить;
                Иначе
                    Символ = Лев(Ячейка.Value,1);
                    Если Символ <> "=" Тогда
                        Продолжить;
                    Иначе
                        Ячейка.FormulaR1C1Local = Ячейка.Value;
                    КонецЕсли;
                КонецЕсли;
            КонецЦикла;        
        КонецЦикла;
Независимо от того, куда вы едете — это в гору и против ветра!