web-dev-qa-db-fra.com

Insérer un saut de ligne dans la cellule encapsulée via le code

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.

32
1355

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
61
brettdj

Vous pouvez également utiliser vbCrLf qui correspond à Chr(13) & Chr(10).

11
Andy Brown

Oui, il y a deux façons d'ajouter un saut de ligne:

  1. 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

  2. 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.

0
Origamer7