Est-il possible d'insérer un saut de ligne dans une cellule encapsulée via le code VBA? (semblable à faireAlt-Enterlors de la saisie manuelle des données)
J'ai défini la propriété Wrap Text de la cellule sur True via le code VBA et j'y insère également des données via le code VBA.
Oui L'équivalent VBA deAltEnterest un caractère de saut de ligne:
ActiveCell.Value = "I am a " & Chr(10) & "test"
Notez que ceci définit automatiquement WrapText
sur True.
preuve:
Sub test()
Dim c As Range
Set c = ActiveCell
c.WrapText = False
MsgBox "Activcell WrapText is " & c.WrapText
c.Value = "I am a " & Chr(10) & "test"
MsgBox "Activcell WrapText is " & c.WrapText
End Sub
Vous pouvez également utiliser vbCrLf
qui correspond à Chr(13)
& Chr(10)
.
Oui, il y a deux façons d'ajouter un saut de ligne:
Utilisez la fonction existante de VBA vbCrLf
dans la chaîne à laquelle vous souhaitez ajouter un saut de ligne:
Dim texte comme chaîne
text = "Hello" & vbCrLf & "World!"
Feuilles de travail (1) .Cells (1, 1) = text
Utilisez la fonction Chr()
et transmettez les caractères ASCII 13 et 10 afin d'ajouter un saut de ligne, comme indiqué ci-dessous:
Dim texte comme chaîne
text = "Hello" & Chr (13) & Chr (10) & "World!"
Feuilles de travail (1) .Cells (1, 1) = text
Dans les deux cas, vous aurez la même sortie dans la cellule (1,1) ou A1.