Domanda

Vorrei analizzare una colonna di celle di stringhe in Excel VBA, ciascuna della cella contiene il seguente:

2 '␂'

Vorrei cambiare il contenuto di questa cella per contenere solo 2 (o qualsiasi caratteri numerici poco prima del 'stringa'. Quale sarebbe il metodo più semplice di analizzare tali informazioni? Grazie.

È stato utile?

Soluzione

Se si è sicuri sul formato, trovare la stringa prima del '(apostrofo) e cambiare il valore della cella. Dando per scontato che sulla cella che ha questo valore, utilizzare il seguente codice VBA.

activecell.text = mid(activecell.text, 1, instr(1, activecell.Text, "'")-1)

Si cerca un apostrofo ed estrae caratteri prima e la mette in cella corrente.

Altri suggerimenti

Supponendo che il dato numerico è sempre all'inizio della cella, è possibile utilizzare Regex per trovare tutti i numeri consecutivi all'inizio della stringa, fermandosi una volta colpisce i primi caratteri non numerici. Ecco una funzione che lo farà per voi, spero che aiuta. Il ^ sta per avviamento della cella, e (\ d +) indica uno o più caratteri numerici e. * Significa seguita da zero o più caratteri. Io parto dal presupposto c'è solo una stringa di numeri che avete bisogno, quindi non ho la regex appena tornare submatch 0 (prima partita).

Function ExtractNumericData(ByVal text As String) As String

Application.ScreenUpdating = False
Dim allMatches As Object
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")

RE.Pattern = "^(\d+).*"
RE.Global = True
Set allMatches = RE.Execute(text)
ExtractNumericData = allMatches.Item(0).submatches.Item(0)
Application.ScreenUpdating = True

End Function
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top