【问题标题】:How to change the source data of an Excel pivot table如何更改 Excel 数据透视表的源数据
【发布时间】:2011-10-21 23:07:18
【问题描述】:

目标实现: 我想使用 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))

【问题讨论】:

    标签: .net vb.net exception excel vba


    【解决方案1】:

    您确定sheet.Names("name_of_NamedRange").Value 指的是一个范围吗?

    【讨论】:

    • 我认为你是对的.. 但我使用.RefersToRange 而不是.Value 但错误仍然是一样的。
    【解决方案2】:

    SourceData 必须是包含地址的字符串,包括工作表名称,例如“我的工作表”!A1:B10。试试这个:

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

    【讨论】:

    • 但这会在 Excel 工作表中给出 Data connections disabled 警告。源数据在同一个文件中。External:=True 的地址中也有文件名。
    • “数据连接已禁用”警告听起来像是一个单独的问题。我了解源数据在同一个工作簿中。在我的测试中,Excel 使用上面的代码正确解析了源 - 工作表名称而不是工作簿名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 2018-08-22
    相关资源
    最近更新 更多