Estrarre un Numero da un campo

di Anonimizzato16093 il
5 risposte
Ciao a tutti
Sono nuovo del forum
Ho un campo contenente del testo e qualche numero
Ho la necessità di estrarre un numero presente in un campo, che contiene del testo e qualche numero, ho un numero di 7 cifre all'interno lo devo isolare e poterlo esportare in un altro campo
-il numero non ha mai una posizione precisa
-non è l'unico numero
-è l'unico numero che ha 7 cifre
-non ci sono numeri superiori a 7 cifre
esiste la possibilità di cancellare tutto il testo e i numeri che non soddisfano il criterio delle 7 cifre ?
grazie del supporto
Ciao Paolo

5 Risposte

  • Che hai un numero lo abbiamo capito...
    Sembra un problema scolastico. .. che dici mi sbaglio..?

    Compreso il problema... mostraci il tuo approccio, cosa hai fatto e che anomalie hai ottenuto...
    Lo sai certamente, perché hai letto il regolamento, che il forum non fornisce codice pronto... quindi esponi il tuo tentativo...
  • Alex
    Al momento dato che ho poche centinaia di record mi sono limitato a filtrare le prime 7 da destra e poi le 7 da sinistra per una prima scrematura, e fortunatamente il 90% ricade in questa casistica, purtroppo per i rimanenti record ne faccio una verifica manuale, lo so che non è professionale ma questo è quanto, non sono alla ricerca di codice pronto ma di alcuni spunti che mi possano indirizzare
    Ciao
    Paolo


    Inviato da mio iPad utilizzando Tapatalk
  • Non mi vengono in mente molte cose non conoscendo la composizione della stringa... pensavo a replace ma da usare con Regexp in modo che sostituisca i gruppi di numeri<7 e le lettere con Nullstriing. .. ma non riesco a darti un pattern per farlo....
    Forse sarebbe più semplice estrarre i 7 numeri direttamente sempre con Regexp
  • Ciao Paolo ed Alessandro...
    ed una soluzione un po' vintage cosi : (....meglio la prima a questo punto...)

    un saluto.
    
    Sub extractNumber3()
    
    Dim strString As String, strNumber As String
    Dim i As Integer
    strString = "asvas74777vasdvasdvdavvvv88svdas7654321asvasdvdasvasdvdasv"
    i = 1
    Do While Len(strNumber) < 7
      If Val(Mid(strString, i, 1)) Then
         strNumber = strNumber & Mid(strString, i, 1)
      Else
        If Len(strNumber) > 0 Then strNumber = ""
      End If
      i = i + 1
    Loop
    
    Debug.Print strNumber
    
    End Sub
    
    [code]
    Sub extractNumber()
    
    Dim strString As String, strNumber As String
    Dim i As Integer
    strString = "asvas74777vasdvasdvdavvvv88svdas7654321asvasdvdasvasdvdasv"
    
    For i = 1 To Len(strString)
      If Len(strNumber) = 7 Then Exit For
      If Asc(Mid(strString, i, 1)) > 47 And Asc(Mid(strString, i, 1)) < 58 Then
          strNumber = strNumber & Mid(strString, i, 1)
      End If
      If Len(strNumber) > 0 And Not (Asc(Mid(strString, i, 1)) > 47 And Asc(Mid(strString, i, 1)) < 58) Then
        strNumber = ""
      End If
    Next
    
    Debug.Print strNumber
    
    End Sub
    
    
  • Grazie mille, lo testerò presto


    Inviato da mio iPad utilizzando Tapatalk
Devi accedere o registrarti per scrivere nel forum
5 risposte