+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Convertire numeri salvati come testo

  1. #1
    arimans non è in linea Scolaretto
    Post
    106

    Convertire numeri salvati come testo

    Salve a tutti,

    ho un file in cui i numeri sono salvati come testo, per esempio "00".
    Per poterli leggere come numeri ho quindi usato:
    codice:
    If CSng(Cells(1,1)) = "0" then
     cells(1,2)="A"
    end if
    .

    Il problema é che in una casella c´é il valore "SS" e l´if risulta positivo anche se il valore di "Csng" é incompatibile

    quindi continua nell´if e non lo salta.

    Come mai?

  2. #2
    Phil_cattivocarattere non è in linea Scribacchino
    Luogo
    Verona-Mantova
    Post
    1,612
    Quote Originariamente inviato da arimans Visualizza il messaggio
    Il problema é che in una casella c´é il valore "SS" e l´if risulta positivo anche se il valore di "Csng" é incompatibile
    Da quello che c'è scritto nel codice si tratta di Excel, vero? C'è la sezione apposita, occhio.
    Non rispondo alla tua domanda (perché non so rispondere, semplice) ma propongo di usare la funzione IsNumeric che come è facile intuire restituisce True o False ed è perfetta per If.

  3. #3
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,158
    Blogs
    5
    Sposto io questa volta. Arimans fai attenzione...
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  4. #4
    arimans non è in linea Scolaretto
    Post
    106
    @ AntonioG, sí scusa, non mi ero accorto di aver postato sul forum sbagliato.

    @Phil_cattivocarattere, sí in effetti posso mettere un if con IsNumeric, é che ieri ho dovuto cercare in lungo e largo dove era il problema perché non mi dava errore.
    A vedere il valore di Csng dice che é incompatibile, ma invece di bloccarsi va avanti...
    Come faccio ad beccare un caso come questo senza dover andare a vedere tutti i valori come ho fatto?
    In fondo é un errore ma non lo segnala...

  5. #5
    Marius44 non è in linea Scolaretto
    Luogo
    Catania
    Post
    310
    Ciao
    tu hai postato una porzione di codice. Non che qualche riga prima c'è On Error Resume Next?
    In questo caso, anche se nota l'errore, Excel VBA continua.

    Ciao,
    Mario

  6. #6
    BennyB non è in linea Scolaretto
    Post
    119
    Salve.
    Non so se ho capito bene il problema, ma per controllare se il testo è numerico, io verificherei se il carattere ACII letto rientra nel campo tra 48 (che corrisponde a 0) e 57 (che corrisponde a 9). Un'istruzione tipo:
    codice:
    i = 1
    While Cells(i, 1) <> ""
        If Asc(Cells(i, 1)) > 47 And Asc(Cells(i, 1)) < 58 Then
            Cells(i, 2) = "A"
        End If
        i = i + 1
    Wend
    Qualsiasi sia il numero del testo, la funzione ASC controllerà sempre il primo carattere.
    Vedi se ti può essere utile.

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi