E-mailadressen extraheren in een Excel-spreadsheet
Een Excel-e-mailadreslijst mag alleen de adressen zelf bevatten. Maar als de spreadsheet zijn gegevens van een extern formulier ontvangt, kan de kolom irrelevante tekst bevatten. Eén cel kan 'Mijn adres is [email protected]' zijn en een ander kan zeggen 'contact op [email protected]'. U kunt de e-mailadressen uitpakken in een nieuwe kolom zodat Excel deze kan gebruiken voor toepassingen zoals samenvoegen. Een methode om dit te doen is om een Visual Basic-script te schrijven.
Schrijf de functie
1.
Druk op de toetsen "Alt" en "F11" om de Visual Basic-editor van Excel te openen.
2.
Typ de volgende code om een nieuwe functie te openen:
Functie ExtractCellEmail (cel als bereik) als tekenreeks
3.
Voeg de volgende code toe om alle tekst uit een bepaalde cel te extraheren:
Dim inhoud als String-inhoud = cel.Tekst
4.
Voeg de volgende code toe om de positie van het "@" -symbool in de tekst te identificeren:
AtPosition = InStr (1, inhoud, "@")
5.
Voeg de volgende twee regels toe om de start- en eindposities van het e-mailadres te identificeren met behulp van de positie van het symbool "@":
AddressStartingPosition = InStrRev (contents, "", AtPosition) AddressEndingPosition = InStr (AtPosition, contents, "")
6.
Voeg de volgende regel toe om het e-mailadres te extraheren met behulp van de begin- en eindposities:
emailAddress = Trim (Mid (content, AddressStartingPosition, AddressEndingPosition - AddressStartingPosition))
7.
Voeg de volgende regel toe om het geëxtraheerde adres in een aangrenzende cel af te drukken:
ActiveCell.Offset (0, 1). Waarde = e-mailadres
8.
Typ de volgende code om de functie te sluiten:
Eindfunctie
Pas de functie toe op een celbereik
1.
Typ de volgende code achter de functie om een nieuwe macro te openen:
Sub mcrExtractColumnAddresses ()
2.
Typ de volgende code om een lus te openen:
Do
3.
Typ de volgende code achter de lusregel om de functie te gebruiken die u hebt geschreven:
Call ExtractEmails (ActiveCell)
4.
Typ de volgende code achter de vorige regel om de volgende cel in de kolom te selecteren:
ActiveCell.Offset (1, 0) .Selecteer
5.
Voeg de volgende regel toe om de lus te sluiten:
Loop until IsEmpty (ActiveCell)
6.
Voeg de volgende code toe om de macro te sluiten:
End Sub
7.
Schakel over naar het spreadsheetvenster.
8.
Selecteer de eerste cel waarvan u het e-mailadres wilt extraheren.
9.
Schakel terug naar het Visual Basic-venster. Plaats de muiscursor in het blok mcrExtractColumnAddresses (), als dit er nog niet is.
10.
Druk op de "F5" -toets om de macro uit te voeren en de e-mailadressen uit te pakken.
Waarschuwing
- Dit proces werkt zolang de enige "@" -symbolen die in e-mailadressen zijn. U kunt er gerust vanuit gaan dat dit voor de meeste cellen geldt, maar overweeg om door de lijst met geëxtraheerde e-mailadressen te bladeren om fouten handmatig te registreren.