Привет У меня есть C# программа, которая дает диапазон Excel2007, его FormulaArray следующимпервенствует формула массива
Excel.Worksheet ws_res = (Excel.Worksheet)
wb.Worksheets.Add(mis, mis, mis, mis);
Excel.Range range_res = (Excel.Range)ws_res.get_Range("A1","HM232");
range_res.FormulaArray = "=(IF((IF(Sheet4!A1:HM232=1,0,"+
"IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232)))=1,0,"+
"IF((IF(Sheet4!A1:HM232=1,0,"+
"IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232)))=0,1,("+
"IF(Sheet4!A1:HM232=1,0,"+
"IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232))))))";
это дает мне исключение сказать, что формула не так ... но если она открыта Excel2007 и в новый лист (скажем, sheet5) выберите диапазон A1: HM232 и вставьте приведенную выше формулу непосредственно в панель формул, а затем нажмите Ctrl + Shift + Enter вместе, он делает все хорошо, ... PLZ вы можете мне рассказать делать то же самое с C#?
я знаю, что если я использую FormulaArray использовать стиль R1C1, но если я использую
"=ROUND((IF(Sheet4!A1:HM232=1,0,"+
"IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232))),0)"
это не дает мне никаких исключений, и выполняет его, как если бы я сделал Ctrl + Shift + Enter, как от C# и excel напрямую
для вышеуказанных двух формул я изменил A1: HM232 на R1C1: R232C221 снова короче, отлично работает с C#, но дольше этого не происходит!
да весь диапазон, т.е. A1: HM232 – 2009-06-25 18:15:52
, тогда он работает как ячейка по ячейке, но это то, чего я не хочу ... Я хочу, чтобы он работал как матрица с вычитанием сложения матрицы и т. Д. – 2009-06-25 18:47:27