Vb.net Excel版本升级导致创建透视表时出现异常

Vb.net Excel版本升级导致创建透视表时出现异常,vb.net,excel,excel-2010,vba,Vb.net,Excel,Excel 2010,Vba,我在vb.net中开发了一个应用程序,可以在报表中创建excel透视表 我机器上的excel版本从2003年升级到2010年,透视表功能正在失败 我查看了2003版和2010版的调用,没有发现任何差异,除了2003版有WkbResult.PivotCaches.Add和2012版有WkbResult.PivotCaches.Create Dim WksPivot As Excel.Worksheet = WkbResult.Worksheets("Summary") Dim WksResult

我在vb.net中开发了一个应用程序,可以在报表中创建excel透视表

我机器上的excel版本从2003年升级到2010年,透视表功能正在失败

我查看了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"))
我试图查看引用,并已将引用更改为在我的机器上显示的更高版本,但我仍然得到相同的异常

以下是例外情况的某些部分

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

对于Excel2010,范围as(“A:D”)的规范似乎不起作用

我把电话改成

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

PC = WkbResult.PivotCaches.Add(Excel.XlPivotTableSourceType.xlDatabase, WksResult.Range("A1:D" & TotalRows))
而且它很有魅力

Add调用也很好,令人惊讶