Convertire stringa caratteri ascii separati da punto e virgola ;

Anonimo
2014-01-24T08:30:26+00:00

Salve a tutti.

Ho provato, ma la ricerca non ha dato i frutti sperati.

Ho necessità di convertire una stringa di questo tipo:

{'86';'101';'110';'101';'122';'105';'97';'32';'83';'76';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32'}

in

Venezia (non mi interessano gli spazi alla fine)

Avete qualche idea su come fare con una singola formula ricorsiva?

Non ho dimestichezza con le macro.

Grazie mille a tutti!

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2014-01-26T22:39:24+00:00

sapevi che non avrei resistito eh? :-)

Function Join_re(s As String) As String

Dim re, M, i As Long, t As Long

Set re = CreateObject("vbscript.regexp")

re.Pattern = "\d+"

re.Global = True

Set M = re.Execute(s)

t = M.Count

If t = 0 Then Exit Function

ReDim v(t - 1)

For i = 0 To t - 1

v(i) = Chr(M(i))

Next

Join_re = Trim(Join(v, ""))

End Function

La risposta è stata utile?

0 commenti Nessun commento

14 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-01-26T15:13:24+00:00

    Salve a tutti.

    Ho provato, ma la ricerca non ha dato i frutti sperati.

    Ho necessità di convertire una stringa di questo tipo:

    {'86';'101';'110';'101';'122';'105';'97';'32';'83';'76';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32'}

    in

    Venezia (non mi interessano gli spazi alla fine)

    Avete qualche idea su come fare con una singola formula ricorsiva?

    Non ho dimestichezza con le macro.

    Grazie mille a tutti!

    Ciao,

    questo SplitAndJoin non utilizza il vba.

    Non è il massimo ma funziona, però utilizza due colonne di supporto, sicuramente Paolo alias paoloard può fare di meglio.

    Andrea.

    No no... senza colonne d'appoggio io non saprei fare di certo. E poi se tu vedessi la formula che ho utilizzato io per estrarre i codici carattere ti si rizzerebbero i capelli. Meglio far finta di niente :-)

    Forse Roberto, alias "r", del NG mpioe potrebbe riuscirci.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-01-25T18:06:42+00:00

    Non è il massimo ma funziona, però utilizza due colonne di supporto, sicuramente Paolo alias paoloard può fare di meglio.

    Andrea.

    Ma se ho quel tipo di dati su più righe?

    E forse OT.

    Paolo (Fratello Paolo) tempo fa, credo davanti alla nostra fumante pizza mensile, si lamentava che non ci fossero formule native di Excel ricorsive (tipo for next, immagino). Vero. Però, ci pensavo oggi tornando dal Moto Bike Expo di Verona (eh eh eh, il vecchio biker è sempre sul pezzo!), ma se avessi una simile formula, ogni volta che viene ricalcolato il foglio, vengono rifatti i relativi for next? Immagino di sì. Un po' come per le matriciali che se sono davvero pesanti rallentano non poco.

    Torno a sognare i *ferri* che ho visto all'Expo e penso proprio che domani tiro fuori l'Honda e mi faccio un giretto. Buon fine settimana.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-01-24T19:19:13+00:00

    Salve a tutti.

    Ho provato, ma la ricerca non ha dato i frutti sperati.

    Ho necessità di convertire una stringa di questo tipo:

    {'86';'101';'110';'101';'122';'105';'97';'32';'83';'76';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32'}

    in

    Venezia (non mi interessano gli spazi alla fine)

    Avete qualche idea su come fare con una singola formula ricorsiva?

    Non ho dimestichezza con le macro.

    Grazie mille a tutti!

    Ciao,

    questo SplitAndJoin non utilizza il vba.

    Non è il massimo ma funziona, però utilizza due colonne di supporto, sicuramente Paolo alias paoloard può fare di meglio.

    Andrea.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2014-01-24T10:02:18+00:00

    Salve a tutti.

    Ho provato, ma la ricerca non ha dato i frutti sperati.

    Ho necessità di convertire una stringa di questo tipo:

    {'86';'101';'110';'101';'122';'105';'97';'32';'83';'76';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32';'32'}

    in

    Venezia (non mi interessano gli spazi alla fine)

    Avete qualche idea su come fare con una singola formula ricorsiva?

    Non ho dimestichezza con le macro.

    Grazie mille a tutti!

    Questa funzione da copia incollare in un modulo standard fa quello che chiedi:

    Public Function f(ByVal v As String) As String

        Dim temp As String

        Dim testo As String

        Dim s() As String

        Dim lng As Long

        temp = Replace(v, "{", "")

        temp = Replace(temp, "}", "")

        temp = Replace(temp, "'", "")

        s = Split(temp, ";")

        For lng = 0 To UBound(s())

            testo = testo & Chr(CInt(s(lng)))

        Next

        f = Trim(testo)

    End Function

    Se il tuo testo è in A1, in B1: = f(A1)

    Se non hai mai utilizzato il VB di Excel, vedi qui:

    La risposta è stata utile?

    0 commenti Nessun commento