Impossible de définir la propriété Visible de la PivotItem classe (VBA)
Je suis en train de manipuler un Tableau croisé dynamique Excel 2007 creux VBA afin que je puisse boucle à travers les catégories du tableau croisé dynamique, tous invisible mais un, enregistrez la feuille au format pdf et de continuer à la prochaine catégorie. Pour cela, j'utilise le bout de code suivant.
Dim pf As PivotField
Set pf = ActiveSheet.PivotTables("PivotTable1").PivotFields("NAME")
Dim pi as PivotItem
For Each pi In pf.PivotItems
If pi.Visible = False Then
pi.Visible = True 'Error here
End If
Dim pi2 As PivotItem
For Each pi2 In pf.PivotItems
If pi2 <> pi Then
pi2.Visible = False
End If
Next pi2
'Saving to PDF goes here
Next pi
La boucle semble être au travail la première fois. Chaque catégorie d'âge obtient désactivée, mais la première et il produit un beau fichier PDF. La prochaine fois qu'il entre dans la boucle, il offre toutefois un "Impossible de définir la propriété Visible de la PivotItem classe" erreur à la ligne indiquée. Je suis conscient du fait que, dans un tableau croisé dynamique, il y a au moins un élément sélectionné, mais qui n'est pas le problème ici, comme je suis en train de mettre de la visibilité à TRUE au lieu de FALSE.
J'ai essayé de fixation en plaçant une case autour de lui que peut-être vous n'êtes pas autorisé à définir un déjà visible PivotItem visible mais cela ne semble pas fonctionner.
Toute aide serait grandement appréciée!
Quelle version d'Excel que vous utilisez?
OriginalL'auteur Stijnvdk | 2012-07-13
Vous devez vous connecter pour publier un commentaire.
Cela est dû à la tableau croisé dynamique à l'aide de la mise en cache de pivot éléments au lieu de l'actuel. Assurez-vous que la table n'a pas de conserver les anciens éléments. Pour ce faire, cliquez droit sur votre tableau croisé dynamique, cliquez sur l'onglet Données et définir le Numéro de l'itesm à conserver par le champ" à "None". Le code pour le faire en VBA est:
OriginalL'auteur Duc Pham
Je réalise que c'est vieux, mais je voulais contribuer pour ceux qui recherchent une solution dans l'avenir.
J'ai vécu ce même message d'erreur, solution, je suis venu avec était juste actualiser le tableau croisé dynamique avant le début de votre pivotitem boucle.
Essayer la ligne de code suivante:
OriginalL'auteur whistler
Vérifier la PivotItem Orientation. Je crois que vous ne pouvez pas définir Visible sur True si l'Orientation est xlHidden. Si c'est le cas, alors il suffit de changer l'Orientation de quelque chose d'autre en premier.
OriginalL'auteur RBarryYoung
Il pourrait être l'un des suivants:
Vous pouvez trouver ci-dessous un exemple en C# de fonctions d'assistance pour le filtrage d'un champ tableau croisé dynamique par pivot éléments:
OriginalL'auteur Michael