c# نطاق excel.FormulaArray, إذا كان لديك الوقت يمكنك أن تجرب أدناه c# البرنامج مع اثنين من مختلف FormulaArrays

StackOverflow https://stackoverflow.com/questions/1045819

  •  20-08-2019
  •  | 
  •  

سؤال

يمكن لأحد أن يقول لي لماذا هذا لا يعمل

 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 = 
           "=ROUND((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)))))),0)";

ولكن هذا لا

   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 = 
  "=ROUND((IF(Sheet4!A1:HM232=1,0,IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232))),0)";

=======================================================

ولكن إذا كنت نسخ ولصق فوق اثنين من الصيغ إلى الصيغة شريط من excel-2007 واضغط على Ctrl+Shift+Enter ، سواء العمل تماما!

=======================================================

لقد تغيرت أيضا في اثنين من فوق الصيغ A1:HM232 إلى R1C1:R232C221 مرة أخرى من c# أقصر واحد يعمل بشكل جيد, ولكن يعد واحد لا يزال يولد استثناء!

هل كانت مفيدة؟

المحلول

يعمل بالنسبة لي.يجب أن نفترض إما أن لا يكون Sheet4 (من غير المحتمل ، منذ أقصر صيغة يعمل) أو أنك ارتكبت خطأ مطبعي عند إزالة ونقلت "+"و فواصل الأسطر.هنا هو ما لدي في شريط الصيغة الآن:

=ROUND((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)))))),0)

نصائح أخرى

بسبب التفوق لديه بعض المشاكل لتنفيذ FormulaArray إذا كانت السلسلة أكثر من 255 حرف.مزعج.VBA لديه جولة طريقة, C#, مستحيل!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top