office交流网--QQ交流群号

Access培训群:792054000         Excel免费交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

Wps的VBA中的PivotTable 透视表对象的GetPivotData函数方法取不到值的问题及解决办法

2020-12-22 08:00:00
zstmtony
原创
6164

通过多天的尝试,Wps的VBA中的PivotTable对象的GetPivotData函数方法取不到值

如下面的的代码:

ActiveSheet.PivotTables(1).GetPivotData("家庭电气化电量")

或加上条件的代码:

ActiveSheet.PivotTables(1).GetPivotData("家庭电气化电量","县局名","中山供电局")


这些代码在Excel能正常取到透视表指定字段的合计值,但Wps vba中就会失效,不起作用,返回的是空值


解决办法 
在当前工作表中先用VBA 先设置一个函数公式  ,如 设置 A1单元格的公式  为这个 GetPivotData 函数
然后VBA再取这个单元格的函数公式 之后的值 (经过 一个中转步骤 )就可以了
xlsSheetOld.range("A1").Value = "=GETPIVOTDATA(""家庭电气化电量"",$B$3,""分县局"",""" & xlsSheet.range("A" & i).Value & """)"
 
 
      If InStr(xlsSheetOld.range("A1").Text, "错误") = 0 And InStr(xlsSheetOld.range("A1").Text, "REF") = 0 Then xlsSheet.range("H" & i).Value = xlsSheetOld.range("A1").Value 


这样就可以了

即Wps的函数公式 GETPIVOTDATA 是有效的
但pivottable对象的方法 GETPIVOTDATA  是无效的

只能使用上面的方法中转一下

分享