Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VBA] Inserire carattere a capo in un testo

    Salve a tutti.

    Devo creare una macro di Excel (Microsoft Visual Basic, Application Edition 7.0) per leggere un file di testo, cercare al suo interno il carattere apice, ed inserire subito dopo l'andata a capo.
    Il file che leggo, edi.txt, contiene un numero di righe sempre diverso, e il carattere che devo cercare (') si trova in punti sempre diversi.

    Esempio, il file edi.txt potrebbe essere :

    AAAA'BBBBBB'CCC
    CCC'DDDDD'EEE'F
    FFF'

    La macro dovrebbe trasformalo in :

    AAAA'
    BBBBBB'
    CCCCCC'
    DDDDD'
    EEE'
    FFFF'

    Premesso che non sono esperto di VBA ho provato ad arrangiarmi leggendo e cercando qua e là.
    Il codice che posto di seguito è sicuramente migliorabile, e molto.

    Ho pensato di leggere tutte le righe del txt per creare un secondo file (edi2.txt) contenente in pratica un'unica riga che è la somma delle righe del txt base.
    Dopodiché cerco il carattere apice (') all'interno di edi2.txt e inserisco il carattere a capo.
    E qui sta il mio problema: non sono capace di inserire l'andata a capo dopo l'apice.
    Ho quindi ho pensato, in alternativa, di sostituire l'apice con l'andata a capo.
    Non è proprio quello che voglio ma è meglio di niente.

    Qualcuno potrebbe gentilmente indicarmi come fare per inserire l'andata a capo tra il carattere apice e il carattere successivo ?

    Grazie a chi vorrà aiutarmi.

    Questo è il mio codice....
    codice:
    Dim Righe As String
    Dim Riga As Integer
    Dim Testo As String
    Dim Testo2 As String
    
    Open "C:\edi.txt" For Input As #1
    
    Do
        Riga = Riga + 1
        Input #1, Righe
        Testo = Testo + Righe
    Loop Until EOF(1) = True
    
    Close #1
    
    Open "C:\edi2.txt" For Output As #2
    
    Testo2 = Replace(Testo, "'", vbCrLf)
    
    Print #2, Testo2
    
    Close #2

  2. #2
    cosa ottieni adesso in edi2.txt?

  3. #3
    Originariamente inviato da optime
    cosa ottieni adesso in edi2.txt?
    Ottengo questo (perché sostituisco l'apice con vbCrLf):
    AAAA
    BBBBBB
    CCCCCC
    DDDDD
    EEE
    FFFF

    Vorrei però mantenere il carattere apice in fondo alle righe, così
    AAAA'
    BBBBBB'
    CCCCCC'
    DDDDD'
    EEE'
    FFFF'

  4. #4
    dai che è facile, aggiungi l'apice anche al rimpiazzo!

    Testo2 = Replace(Testo, "'", "'"+vbCrLf)

    that easy!

  5. #5
    Già...era facile...
    Inutile perdere tempo cercando soluzioni complicate

    Grazie per il suggerimento.

  6. #6
    optime! lasciami un "mi piace", grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.