好的,我现在真的很沮丧。在过去大约一个小时的时间里,我一直在尝试从简单的Pivot获取数据。我无法正常工作。
我非常简单的代码:
Sub getXXFromPivot()
Dim test As PivotTable
Set Sheet1 = ActiveWorkbook.Sheets("Sheet5")
Set test = Sheet1.PivotTables("PivotTable1")
Set test2 = test.ClearAllFilters
MsgBox test2
End Sub
我试图使用“ GetPivotData
”方法获取数据,但是无论我在test.
之后使用什么(ClearAllFilters
只是一个测试),我总是会出错1004.我的错误是什么?我想不明白。
确实存在“数据透视表1”。我可以MsgBox test
并获得“数据透视表1”。
答案 0 :(得分:2)
添加到我的评论中,请在下面看到您的代码的改编:
Option Explicit 'Is recommended to use this always
Sub getXXFromPivot()
Dim sht As Worksheet
Dim pTbl As PivotTable
Set sht = ActiveWorkbook.Sheets("Sheet5")
Set pTbl = sht.PivotTables("PivotTable1")
pTbl.ClearAllFilters
MsgBox pTbl.Name
End Sub
有关如何使用数据透视表的很好的参考资料,请参见The VBA Guide To Excel Pivot Tables
答案 1 :(得分:1)
您可能决定使用数据透视表的<asp:GridView ID="gvTable" runat="server" AutoGenerateColumns="False" AllowPaging="True" OnPageIndexChanging="gvTable_PageIndexChanging" PageSize="15" OnRowDataBound="gvTable_RowDataBound" CellPadding="4" ForeColor="#333333" GridLines="None" OnSelectedIndexChanging="gvTable_SelectedIndexChanging" style="margin-top: 0px">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="Username">
<ItemTemplate>
<asp:Label ID="lblUsername" runat="server" Text='<%# Bind("Username") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="CompanyName">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("CompanyName") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Street">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Street") %>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
或TableRange1
属性并对其进行循环。这是主要区别:
TableRange1-返回一个Range对象,该对象表示包含整个数据透视表报表的范围,但不包括页面字段。只读。
TableRange2-返回一个Range对象,该对象表示包含整个数据透视表报表(包括页面字段)的范围。只读。
TableRange2