Comment faire une boucle à travers chaque colonne dans Excel et d'appliquer la largeur de la colonne en fonction de la condition
Je suis dans le besoin de code excel vba qui va ajuster automatiquement toutes les colonnes par défaut et ensuite une boucle à travers la largeur de chaque colonne et si toute la largeur dépasse une valeur donnée, par exemple., 50, puis de restreindre ce particulier la largeur de la colonne à 30 et ensembles de retour pour de vrai.
Public Function LastColumn(Optional wks As Worksheet) As Long
If wks Is Nothing Then: Set wks = ActiveSheet
LastColumn = Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
End Function
Sub Macro1()
Dim LastCol As Long
Cells.Select
Cells.EntireColumn.AutoFit
LastCol = LastColumn(ThisWorkbook.Sheets("Sheet1"))
For i = 1 To LastCol
If Columns(i).ColumnWidth > 70 Then
Columns(i).ColumnWidth = 70
Columns(i).WrapText = True
End If
Next i
End Sub
Est-il un meilleur moyen pour y parvenir?
- enregistrement de la macro, puis de le modifier
- Si vous avez toujours des problèmes après avoir suivi @chancea les conseils, montrer votre code d'améliorer vos chances d'avoir une réponse.
- l'enregistreur de macro va vous montrer les objets et les méthodes à utiliser. vous avez à mettre en avant au moins autant d'efforts 🙂 une fois que vous avez cette information, c'est juste une question de configuration de la logique conditionnelle en fonction de vos besoins.
- Le code qu'il a posté est l'enregistreur de macro de code. La boucle de la partie ne peut pas être résolu par l'enregistreur de macro. De l'avis qu'il a le
AutoFit
, leWrapText
et laColumnWidth
. Je dirais qu'il a mis dans le minimum d'effort et le code est fonctionnel. Tout ce qui est nécessaire est d'utiliser la UsedRange.Les colonnes de l'objet (qui vous l'habitude de les obtenir à partir de l'enregistreur de macro)
Vous devez vous connecter pour publier un commentaire.
Quelque chose comme
Remarque, il utilise Excel largeurs, pas de Pixels