привет, у меня есть программа на c #, которая дает диапазон Excel2007, его формула выглядит следующим образом
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))))))";
это дает мне исключение, говоря, что формула неверна ... но если открыть Excel-2007 и на новом листе (скажем, sheet5), выберите диапазон A1: HM232 и вставьте приведенную выше формулу непосредственно в строку формул, а затем нажмите Ctrl + Shift + Enter вместе, все будет хорошо, ...
плз, можете ли вы сказать мне, как сделать то же самое с C #?
я знаю, что если я использую формула для использования стиля 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 # работает нормально, а с дольше -