Principale utente con più risposte
[VB2010] Ricercare "Ritorno a capo" su stringa e riportarlo su Excel

Domanda
-
Ho la necessità di trasferire un "ritorno a capo" da un modulo su un foglio Word a una cella di Excel, il trasferimento dei dati lo gestisco attraverso una Query in SQL, ho solo bisogno di individuare il "ritorno a capo" all'interno della variabile stringa e rifarlo apparire su Excel.
La variabile e strutturata in questo modo:
strCondizioni = Chr(39) & doc.FormFields("Condizioni").Result & Chr(39)
P.S. Sto utilizzando Visual Basic di Word
Aspetto soluzioni e consigli! :)
- Modificato Matteo L lunedì 7 ottobre 2013 17:10
Risposte
-
Per dividere una stringa in base ad un determinato carattere ottenendo un array puoi usare il metodo Split().
In questo caso, per identificare il carattere di ritorno a capo usa la costante vbCrLf.
- Modificato System_ lunedì 7 ottobre 2013 17:47 Miglioramento
- Proposto come risposta Irina Turcu mercoledì 9 ottobre 2013 12:49
- Contrassegnato come risposta Irina Turcu mercoledì 9 ottobre 2013 19:10
-
Funzionava anche con la versione che ho inserito inserito in preccedenza, solo che ho dovuto cliccare sulla cella di Excel e rischiacciare invio:
praticamente è riconosciuto il ritorno a capo ma c'era bisogno di un refresh.Ottimo funziona tutto.
SOLUZIONE:Dim finale As String Dim myArray() As String 'Utilizzo la Split() per spezzare la stringa quando ricorre un "ritorno a capo" e inserisco tutto all'interno di un'array myArray() = Split(strSintomi, Chr(13)) 'Trasferisco ogni posizione dell'array con l'aggiunta del nuovo carattere For i = 0 To UBound(myArray) finale = finale + (myArray(i) + vbCrLf) Next i
Dopo di che eseguo una stringa SQL per trasportare i dati nelle celle di Excel.Grazie per l'aituo :)
- Proposto come risposta Carmelo La Monica martedì 8 ottobre 2013 09:35
- Modificato Matteo L martedì 8 ottobre 2013 10:03
- Contrassegnato come risposta Irina Turcu mercoledì 9 ottobre 2013 19:10
Tutte le risposte
-
Per dividere una stringa in base ad un determinato carattere ottenendo un array puoi usare il metodo Split().
In questo caso, per identificare il carattere di ritorno a capo usa la costante vbCrLf.
- Modificato System_ lunedì 7 ottobre 2013 17:47 Miglioramento
- Proposto come risposta Irina Turcu mercoledì 9 ottobre 2013 12:49
- Contrassegnato come risposta Irina Turcu mercoledì 9 ottobre 2013 19:10
-
Questa è la soluzione che ho trovato, però Excel non riconosce il ritorno a capo, o meglio lo identifica come un carattere non identificato.
SOLUZIONE VB:
Dim finale As String
Dim myArray() As String
'Utilizzo la Split() per spezzare la stringa quando ricorre un "ritorno a capo" e inserisco tutto all'interno di un'array
myArray() = Split(strSintomi, Chr(13))
'Trasferisco ogni posizione dell'array con l'aggiunta del nuovo carattere
For i = 0 To UBound(myArray)
finale = finale + (myArray(i) + vbCrLf)
Next i
Dopo di che eseguo una stringa SQL per trasportare i dati nelle celle di Excel.Come faccio a fare riconoscere il ritorno a capo a Excel?
Grazie in anticipo.
- Modificato Matteo L martedì 8 ottobre 2013 09:08
-
Hai già provato ad utilizzare il carattere suggerito da frenci2012 per individuare il corretto ritorno a capo?
Ovvero, nel tuo codice, sostituire la riga:
myArray() = Split(strSintomi, Chr(13))
con
myArray() = Split(strSintomi, vbCrLf)
Emiliano Musso
-
Funzionava anche con la versione che ho inserito inserito in preccedenza, solo che ho dovuto cliccare sulla cella di Excel e rischiacciare invio:
praticamente è riconosciuto il ritorno a capo ma c'era bisogno di un refresh.Ottimo funziona tutto.
SOLUZIONE:Dim finale As String Dim myArray() As String 'Utilizzo la Split() per spezzare la stringa quando ricorre un "ritorno a capo" e inserisco tutto all'interno di un'array myArray() = Split(strSintomi, Chr(13)) 'Trasferisco ogni posizione dell'array con l'aggiunta del nuovo carattere For i = 0 To UBound(myArray) finale = finale + (myArray(i) + vbCrLf) Next i
Dopo di che eseguo una stringa SQL per trasportare i dati nelle celle di Excel.Grazie per l'aituo :)
- Proposto come risposta Carmelo La Monica martedì 8 ottobre 2013 09:35
- Modificato Matteo L martedì 8 ottobre 2013 10:03
- Contrassegnato come risposta Irina Turcu mercoledì 9 ottobre 2013 19:10