Also, du hast den befehl "MsgBox "EMail: " & strMail" weggelassen. Dafür soll die ausgewählte Empfängeradresse den Befehl strMail entahlten. Und somit werden dann nur die Mailadresse die ein "x" davor hat, in das Outlook übertragen.
Jep.
1 2 3 4 5 6 7 | With Worksheets( "Tabelle1" ).Columns( "A" )
Set rng = .Find( "x" , , xlValues, xlWhole, xlByColumns, MatchCase:= False )
End With
|
Find ist eine Methode der Range-Klasse - Columns("A") liefert ein Objekt der Klasse Range.
Man könnt die zwei Zeilen oben auch alternativ so schreiben:
1 2 | Set rng = Worksheets( "Tabelle1" ).Columns( "A" )
Set rngFind = rng.Find( "x" , , xlValues, xlWhole, xlByColumns, MatchCase:= False )
|
Durch die With-Anweisung spart man sich hier halt eine Variable ein - welches jedoch nicht der eigentliche Zweck - siehe Link, Hinweis - davon ist.
1 2 3 4 5 6 7 8 9 | Set rng = .Find( "x" , , xlValues, xlWhole, xlByColumns, MatchCase:= False )
If Not rng Is Nothing Then
strMail = rng.Offset(0, 1).Value
MsgBox "EMail: " & strMail
End If
|
Wurde nichts gefunden, dann ist rng Nothing. Die Zeile im Makro oben bedeutet "Nicht Nichts". Mit dem VBA Syntax kann es leider nicht anders formuliert werden - wünschenswert wäre "If rng IsNot Nothing" aber das gibt es leider nicht. ;(
rng ist wieder ein Range-Objekt (stellt also eine Zelle oder einen Bereich dar - hier eine Zelle). Durch die Methode Offset kann man den Bereich versetzt referenzieren. Mit Offset(0, 1) wird aus A1 -> B1. Der Inhalt der Zelle wandert in die Variable strMail, welche eine Zeichenkette (String) darstellt. Den Inhalt kann man dann weiter zuweisen, wo man ihn braucht.
Grüße
|