2013-03-23 266 views
0

问题1:要导出到Excel的数据是使用我的vb.net代码中的二维数组对象准备的。当试图分配此数组对象ExcelRange.Value或.Value2性能,它的工作原理除了当任何细胞值的文本长度要导出超过8203细(抛出异常与msg“中从HRESULT异常:0x800A03EC”)将数据导出到excel

问题2:尽管使用excelrange.FormulaArray属性,与消息“无法设置Range类FormulaArray属性”错误。但它使用字符串数组在vb6中正常工作。 是什么原因? 下面是详细的错误,当我使用excelrange.FormulaArray属性导出到Excel的

System.Runtime.InteropServices.COMException was caught 
ErrorCode=-2146827284 
HelpLink="C:\Program Files (x86)\Microsoft Office\Office12\1033\XLMAIN11.CHM" 
Message="Unable to set the FormulaArray property of the Range class" 
Source="Microsoft Office Excel" 
StackTrace: 
    at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData) 
    at Excel.Range.set_FormulaArray(Object) 
    at globalmodule.modglobconstant.ExportMsfgToExcel(AxMSFlexGrid& Msfg1, Boolean& flg, String FileName1) 
InnerException: 

任何其他替代方法/解决这个问题,将不胜感激

回答

0
  1. 根据Excel 2010 Performance: Performance and Limit Improvements限制到单元格公式为8000个字符。但是,进一步的测试显示,Excel 2007接受了一串32767个字符(我没有2010的副本)。

  2. 如果从一个台移动,通常应该使用.Value.FormulaFormulaArray为其中一个公式应用于一单元格范围的特殊情况。

在提交的测试用例中,您试图将一个VB数组赋值给Range.Value。改变这个分配数组的单个成员工作。

+0

我已经创建的Excel宏这表明该错误的简单的代码,我是这里getting.Download文件[链接](http://incometaxsoft.com/pdf/test1.xlsm)在这里,我已经wriiten简单的Excel宏A10单元更新来自A1的值。由于A1包含长度文本(超过8000个字符),所以它不在A10中更新 – 2013-03-25 12:31:28

+0

在宏中,我写了两个case.one用于错误情况,另一个用于正常情况。您可以对该行进行注释并查看错误。 – 2013-03-25 12:41:33