8
votes

VBA Excel VerticalIgnement = XLCenter ne fonctionne pas

Le code ci-dessous sélectionne la feuille mais échoue pour aligner les cellules au centre.

wb.Sheets(1).Columns("A:L").VerticalAlignment = xlCenter


4 commentaires

Êtes-vous sûr de vouloir verticalalignment & non horizontallignement ? juste vérifier


Nous aurons besoin de plus d'informations. Cela fonctionne pour moi. Êtes-vous peut-être l'intention d'utiliser horizontalalignement au lieu de verticalalignment ?


Ce code fonctionnera chaque fois que wb.sheets (1) est la feuille de calcul active sinon elle échouera. Je prépare cette question parce que c'est un piège commun pour que les gens apprennent à programmer VBA via des macros enregistreuses.


@Bruno: Vous cherchez toujours une meilleure réponse? Sinon, vous devez en accepter un.


3 Réponses :


3
votes

Ceci est une erreur courante pour ceux qui apprennent le modèle d'objet Excel. Chaque feuille de calcul doit avoir une plage sélectionnée en cours, mais Sélection CODE> Pointe toujours à la plage sélectionnée de la feuille de calcul active em>. Vous devez .ACtivate code> une feuille de plage sélectionnée sur cette feuille pour être la sélection code> objet code>.

wb.Sheets(1).Columns("A:L").VerticalAlignment = xlCenter


0 commentaires

16
votes

Ne pas Sélectionnez et ne fonctionne pas avec Sélection sans raison. C'est des affaires de l'enregistreur. Il est plus long de lire, plus lentement à exécuter et sujette à une erreur.

wb.sheets (1) .Columns ("A: L"). Verticalalignment = xlcenter est beaucoup mieux.

Si vous devez faire plusieurs choses avec la même plage, utilisez avec xxx


0 commentaires

3
votes

Remplacer .VerticalalIGIGNEMENT = xlcenter avec .horizontalalIgnement = xlcenter . .


0 commentaires