2012-03-28 12 views
25

È possibile inserire un'interruzione di riga in una cella avvolta tramite il codice VBA? (Simile a fare Alt - Enter durante l'immissione manuale dei dati)Inserisci interruzione di riga nella cella avvolta tramite il codice

ho impostare la proprietà Testo a capo della cella a True tramite codice VBA, e io sono l'inserimento dei dati in esso anche attraverso il codice VBA.

+1

Forse è il momento di accettare che la risposta è probabilmente no. – mattboy

+2

@mattboy: Non capisco ... –

+0

Se la mia risposta non ha soddisfatto la tua domanda (inserire un'interruzione di riga in una cella avvolta attraverso il codice VBA?), Allora sono confuso su ciò che effettivamente vuoi. Puoi espandermi? – brettdj

risposta

46

Sì. L'equivalente VBA di AltEnter è quello di utilizzare un carattere di riga:

ActiveCell.Value = "I am a " & Chr(10) & "test" 

Si noti che questa imposta automaticamente WrapText su True.

Proof:

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

+1. Se avessi saputo di questo thread, avrei incluso questo post nel mio altro thread ... LOL.Ho dovuto riscrivere tutto da zero. –

+0

Ma il problema è che non ho potuto modificare le mie stringhe di input. ; ( – 1355

+0

Quando una riga termina, deve mettere automaticamente interruzioni di riga alla fine :) – 1355

9

Si potrebbe anche usare vbCrLf che corrisponde al Chr(13) & Chr(10).

+1

Questo inserisce due combinazioni CR/LF in Excel (non è possibile vederli fino a quando non provi a centrare le due linee nella cella, quindi noti che la prima riga è decentrata). Meglio usare ControlChars.Lf. – Andy

-1

Sì, ci sono due modi per aggiungere un avanzamento riga:

  1. Utilizzare la funzione esistente da VBA vbCrLf nella stringa che si desidera aggiungere un avanzamento riga, come ad esempio:

    Dim testo String

    text = "Ciao" & vbCrLf & "Mondo!"

    Worksheets (1) .Cells (1, 1) = testo

  2. Utilizzare la funzione Chr() e passare i caratteri ASCII 13 e 10 per aggiungere un avanzamento riga, come mostrato sotto:

    Dim testo As String

    text = "Hello" & Chr (13) & Chr (10) & "Mondo!"

    fogli di lavoro (1) .Cells (1, 1) = testo

In entrambi i casi, si avrà la stessa uscita nella cella (1,1) o A1.

0

Basta fare Ctrl +Enter all'interno della casella di testo

Problemi correlati