2011-08-07 83 views
2

目標實現: 我想在Excel中使用VB.Net將我的數據透視表的源數據更改爲命名範圍。如何更改Excel數據透視表的源數據

我:

table.ChangePivotCache(wb.PivotCaches.Create(SourceType:=Excel.XlPivotTableSourceType.xlDatabase, SourceData:=sheet.Names("name_of_NamedRange").RefersToRange)) 

例外:

The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG)) 

回答

0

SourceData需要是一個包含地址的字符串,包括工作表名稱,比如'My Sheet'!A1:B10。試試這個:

table.ChangePivotCache(wb.PivotCaches.Create(SourceType:=Excel.XlPivotTableSourceType.xlDatabase, SourceData:=sheet.Names("name_of_NamedRange").RefersToRange.Address(External:=True))) 
+0

但是,這將在Excel工作表中給出'Data connections disabled'警告。源數據位於同一個文件中。'External:= True'也將在地址中包含文件名。 –

+0

「禁用數據連接」警告聽起來像是一個單獨的問題。我瞭解同一工作簿中的源數據。在我的測試中,Excel使用上面的代碼正確解析了源代碼表 - 名稱而不是工作簿名稱。 –

1

確定sheet.Names("name_of_NamedRange").Value指範圍?

+0

我認爲你是對的..但我用'.RefersToRange'代替'.Value',但仍然是錯誤。 –

+0

我正在編輯這個問題。 –