2012-09-19 53 views
0

我已經開發了在vb.net這異常創建數據透視表,由於Excel版本升級

我的機器上的Excel版本得到了從2003年和樞軸升級至2010年的報告創建一個Excel數據透視表中的應用表功能未能

我看着了2003年和2010年版本的來電,並沒有發現除2003年外的任何差別有WkbResult.PivotCaches.Add和2012年有WkbResult.PivotCaches.Create

Dim WksPivot As Excel.Worksheet = WkbResult.Worksheets("Summary") 
Dim WksResult As Excel.Worksheet = WkbResult.Worksheets("Test_Details") 
Dim PC As Excel.PivotCache = Nothing 
Dim PTS As Excel.PivotTables = Nothing 
Dim PT As Excel.PivotTable = Nothing 

' This is where it fails even after i changed Add to Create method 

PC = WkbResult.PivotCaches.Create(Excel.XlPivotTableSourceType.xlDatabase, WksResult.Range("A:D")) 

我想看看refe分配辦法,並有改變了參考到更高版本,顯示我的計算機上,但我仍然得到同樣的異常

這裏是異常的某些部分

System.ArgumentException was unhandled 
    Message="The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))" 
    Source="" 
    StackTrace: 
     at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData) 
     at Microsoft.Office.Interop.Excel.PivotCaches.Create(XlPivotTableSourceType SourceType, Object SourceData, Object Version) 
     at QCLite.PivotTableManager.CreateResultsPivotTable(Workbook& WkbResult, ListView lstResults) in C:\userdata\Framework\src\06 Utilities\QCLite\QCLite\PivotTableManager.vb:line 23 

回答

1

這似乎是爲Excel 2010中的範圍指定爲(「A:d」)不工作

我改變調用

Dim TotalRows As Integer = WksResult.UsedRange.Rows.Count 

PC = WkbResult.PivotCaches.Add(Excel.XlPivotTableSourceType.xlDatabase, WksResult.Range("A1:D" & TotalRows)) 

和它的工作般的魅力。

添加電話也工作得很好,令人驚訝。