2013-03-23 267 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