当用户按下按钮时,我需要更新16个数据透视表。需要运行的代码如下:
ActiveSheet.PivotTables("PivotTable10").PivotFields("count").ClearAllFilters
ActiveSheet.PivotTables("PivotTable10").PivotFields("scrap code").ClearAllFilters
ActiveSheet.PivotTables("PivotTable10").PivotFields("count").ShowAllItems = True
With ActiveSheet.PivotTables("PivotTable10").PivotFields("count")
.PivotItems("0").Visible = False
End With
数据透视表的名称是:
MSP,MSP30,FSP,FSP30,MRP,MRP30,FRP,FRP30,MPP,MPP30,FPP,FPP30,MCP,MCP30,FCP,FCP30
我希望将PivotTable10
替换为循环到该数据透视表列表的变量。现在我的代码是上面代码的16个块。我对循环知之甚少,而且我在谷歌搜索中找不到这种类型循环的好例子。
编辑:最后代码有效,下面的两个答案都完美无缺,这段代码只是工作得更快
Sub IteratePivots()
Application.ScreenUpdating = False
On Error Resume Next
Worksheets("Analytics Admin").Activate
Dim pvtTables As PivotTables
Dim pvtTable As PivotTable
Set pvtTables = Application.ActiveSheet.PivotTables
For Each pvtTable In pvtTables
pvtTable.PivotFields("count").ClearAllFilters
pvtTable.PivotFields("scrap code").ClearAllFilters
pvtTable.PivotFields("count").ShowAllItems = True
With pvtTable.PivotFields("count")
.PivotItems("0").Visible = False
End With
Next
Application.ScreenUpdating = False
End Sub
答案 0 :(得分:3)
试试这段代码。此代码将遍历工作表中的所有可转动。
Sub IteratePivots()
Dim pvtTables As PivotTables
Dim pvtTable As PivotTable
Set pvtTables = Application.ActiveSheet.PivotTables
For Each pvtTable In pvtTables
pvtTable.PivotFields("count").ClearAllFilters
pvtTable.PivotFields("scrap code").ClearAllFilters
pvtTable.PivotFields("count").ShowAllItems = True
With pvtTable.PivotFields("count")
.PivotItems("0").Visible = False
End With
Next
End Sub
答案 1 :(得分:2)
这有点像黑客攻击,但这样的事情可能就是这个伎俩:
$.ajax({
url: 'jsonTable.php',
type: 'GET',
dataType : 'json',
/*data: {
json: jsonData
},*/
success: function (response) {
alert(response);
console.log(response);
var trHTML = '';
$.each(response.livres, function (item) {
trHTML += '<tr><td>' + item.titre + '</td><td>' + item.auteur + '</td><td>' + item.annee + '</td></tr>';
});
$('#records_table').append(trHTML);
}
});
你可能会注意到我的笨拙检查,看看这个名字是否在数组中......这是一个更好的解决方案: