Condividi:        

[vba excel 2003]: trovare caratteri speciali in stringa

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[vba excel 2003]: trovare caratteri speciali in stringa

Postdi karug64 » 17/06/13 23:24

Salve a tutti.
Leggo delle celle di un file excel (prodotto in automatico da un'altra procedura) che contengono testo per poi ricopiarle in un altro foglio di lavoro.
Ho un problema: in alcuni casi (random) la cella contiene dei caratteri speciali (li visualizzo come dei "quadratini") che mi riportano a capo la riga e mi "allungano la cella a dismisura.

Domanda: c'e' un modo per verificare se la stringa letta contiene caratteri speciali ? (cosi' non la copio ...)
Se si, è anche possibile espurare la stringa ? (cosi' scrivo il testo pulito su unica riga... )

Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: [vba excel 2003]: trovare caratteri speciali in stringa

Postdi Anthony47 » 18/06/13 01:58

Prova in prima battuta se la funzione LIBERA ti ripulisce la stringa; se Si, essa e' accessibile in vba come Application.WorksheetFunction.Clean(Stringa), per cui facendo un compare tra Len(Stringa) e Len(Application.WorksheetFunction.Clean(Stringa)) puoi sapere (se le due lunghezze sono diverse) se la stringa contiene almeno un carattere spurio.
Se LIBERA non funziona, allora dovrai probabilmente esaminare carattere per carattere e controllare che il codice restituito dalla funzione vba Asc sia compreso tra il 32 (spazio) e il 122 (z) o al massimo 126 (tilde).
So che si possono anche creare "regular expression" script, ma su questo fronte sono solo in grado di copiare...

Se con questi spunti non risolvi allora scrivi ancora, spiegando le prove fatte e i risultati; e se riesci ad allegare un esempio di file viene meglio.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [vba excel 2003]: trovare caratteri speciali in stringa

Postdi karug64 » 23/06/13 08:56

Salve.

Rispondo per comunicare che la soluzione :

Application.WorksheetFunction.Clean(Stringa)

non va.

Ho adottato quella della scanzione della riga carattere x carattere (anche se piu' lunga e dispendiosa in termini di tempo) - funzione Asc - che funziona perfettamemente.

Grazie ed alla prossima.
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: [vba excel 2003]: trovare caratteri speciali in stringa

Postdi Anthony47 » 23/06/13 10:49

Se la cosa e' da fare spesso e i tempi per l' esame di ogni carattere e' un problema, dovresti verificare se i caratteri spuri hanno sempre lo stesso codice asci; in questo caso potrai affrontare lo loro sostituzione con la funzione SOSTITUISCI, la cui equivalente in vba e' Replace. Tipo:
Codice: Seleziona tutto
myString=Replace(Replace(myString, PrimoCrt, ""), secondoCrt, "")

Questa elimina primoCrt e secondoCrt (che potrai generare con Chr(xyz), dove xyz e' il codice asci); allungando (o ripetendo) la formula potrai allungare il numero di caratteri che si ossono eliminare.
Per ulteriori aiuti servira' necessariamente un esempio di testo da ripulire.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [vba excel 2003]: trovare caratteri speciali in stringa

Postdi karug64 » 23/06/13 11:50

Grazie Anthony.
Alla fine ho deciso di utilizzare il primo metodo (for....) perche' il testo che vado a leggere dal file txt è su base libera. c'e' di tutto.
Anche se i caratteri che più mi creano problemi sono il chr(10) e il chr(13) (ptrei utilizzare la tua seconda soluzione) non so "in generale" che cosa vado a leggere, quindi ho deciso che anche se l'elaborazione dura pochi minuti in più non è un grosso probelma.

Grazie ancora.
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22


Torna a Applicazioni Office Windows


Topic correlati a "[vba excel 2003]: trovare caratteri speciali in stringa":


Chi c’è in linea

Visitano il forum: Nessuno e 45 ospiti