none
[VB2010] Ricercare "Ritorno a capo" su stringa e riportarlo su Excel RRS feed

  • 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
    lunedì 7 ottobre 2013 16:06

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
    lunedì 7 ottobre 2013 17:45
  • 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
    martedì 8 ottobre 2013 09:34

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
    lunedì 7 ottobre 2013 17:45
  • 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
    martedì 8 ottobre 2013 09:02
  • 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

    martedì 8 ottobre 2013 09:22
    Moderatore
  • 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
    martedì 8 ottobre 2013 09:34