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.
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:
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.
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
|