感谢您对此提出任何意见。我正在尝试创建一个简单的数据透视表,从表格“5月15日趋势5”中获取数据并将其放在我的数据透视表表格中,名为“错误按重要性 - 透视”。
当我尝试使用create方法设置数据透视缓存范围时,它返回类型不匹配的运行时错误。我检查了参数,看起来我正确设置它。我确实尝试指定数据透视表版本,但仍然得到相同的错误。我的代码如下。
我假设它与pvtCache变量或我将其设置到范围的方式有关,但我无法找出任何解决方案。
Sub PivotTableCode()
Dim pvtCache As PivotCache
Dim pvt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
'Set the cache of the pivot table
Sheets("5 Month Trending May 15").Select
Set pvtCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, Range("A2:H38"))
'create the Pivot Table
Sheets("Errors by Criticality - Pivot").Select
Set pvt = ActiveSheet.PivotTables.Add(pvtCache, Range("AP2"), "MyPivotTable")
End Sub
答案 0 :(得分:1)
documentation for PivotCaches.Create表示
如果
SourceData
不是SourceType
,则需要xlExternal
参数。它可以是Range
对象(SourceType
为xlConsolidation
或xlDatabase
时)或Excel工作簿连接对象(SourceType
为xlExternal
时) )。
尽管如此,宏录制器始终会为String
创建SourceData
。 (It will even create a bad string if the Sheet
has a space in the name).
鉴于对宏录制器的偏好,我经常将其作为带有地址的String
提供。
我以前能够在这里提供Range
所以我不确定具体是什么阻止了Range
在这种情况下的使用。
要使用String
,您的代码应如下所示:
Set pvtCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, "'5 Month Trending May 15'!A2:H38")