将数据导出到Excel

时间:2013-03-23 10:11:41

标签: vb.net excel-vba vb6 export-to-excel vba

问题1:要导出到Excel的数据是使用我的vb.net代码中的二维数组对象准备的。当试图将此数组对象分配给ExcelRange.Value或.Value2属性时,它工作正常,除非要导出的任何单元格值的文本长度超过8203(它会引发一个异常,其中msg为“HRESULT异常:0x800A03EC”)< / p>

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

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:

非常感谢导出到excel /解决此问题的任何其他替代方法

1 个答案:

答案 0 :(得分:0)

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

  2. 如果您是从桌子转移,通常使用.Value.FormulaFormulaArray适用于将一个公式应用于某个范围的特殊情况细胞

  3. 在提交的测试用例中,您试图将一个VB数组分配给Range.Value。更改此项以指定数组中的单个成员。