Ho una stringa in una cella, diciamo che dice "Rif. Cliente: F123456PassPlus". E 'possibile che la stringa non abbia una lettera prima dei numeri, è possibile che ci sia un simbolo nei numeri ed è possibile che ci sia uno spazio tra la lettera ei numeri. Ho bisogno di estrarre solo i numeri come variabile. Ho il codice per farlo, ma non sa quando smettere di scorrere attraverso la stringa. Dovrebbe fermarsi quando c'è qualcosa di diverso da un numero o un simbolo, ma continua invece.Excel VBA esegue il ciclo attraverso una stringa di numeri finché non viene trovata una lettera
IsNumber = 1
ref = ""
If branch = "" Then
e = b
Else
e = b + 1
End If
f = 1
While IsNumber = 1
For intpos = 1 To 15
ref = Mid(x, e, f)
f = f + 1
Select Case Asc(ref)
Case 45 To 57
IsNumber = 1
Case Else
IsNumber = 0
Exit For
End Select
Next
IsNumber = 0
Wend
Tutte le lettere variabili là che non hanno definizioni sono state precedentemente definiti, e dice il codice in cui per avviare la copia e x è la cella che contiene la stringa. Per ora funziona tutto bene, inizia dal numero e li copia e li costruisce in una stringa sempre più grande, ma si fermerà solo quando raggiunge quota 15.
Ovunque si desideri terminare il sottotitolo, basta aggiungere "Esci sott.". – BruceWayne
Ho bisogno della macro per sapere quando è contenuta una lettera (o preferibilmente prima), quindi userò il comando "Esci da" nel mio codice. Con quello che ho scritto, ho pensato che avrebbe dovuto farlo, ma apparentemente no. –
Hai eseguito il debug.print Asc (ref) per vedere i valori? – CPMunich