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, le WrapText et la ColumnWidth. 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)
InformationsquelleAutor jjrc | 2013-07-18