2016-08-01 7 views
0

Dies ist wirklich eine einfache Frage.
Aber ich habe eine harte Zeit, es zu lösen.Mehrere ausgewählte Adressen von GetAddress trennen Methode

Hintergrund:

Ich versuche, E-Mail-Adresse .GetAddress Methode des Word.Application Objekts zu erhalten.
Jetzt habe ich kein Problem, wenn der Benutzer einzelne To und CC Empfänger auswählt.
Problem tritt auf, wenn mehrere E-Mails vom Benutzer ausgewählt werden.
Beispielsweise wählt der Benutzer zwei E-Mail-Adressen und eine Gruppenliste aus.

rawRecip = Application.GetAddress(, "<PR_DISPLAY_NAME>", , 1, 2, True) 
Debug.Print rawRecip 

obigen Code erzeugt:

Smith, John, Joe, Jane, All-HQ Group 

Jede Adresse ausgewählt wird von einem <comma><space> getrennt.
Das Problem ist SurName und sind auch durch das gleiche getrennt.
Nun muss ich den Anzeigename der 3 vom Benutzer ausgewählten Adresse erfolgreich erhalten.
Split Funktion bringt mich nirgendwohin, da ich ein eindeutiges Trennzeichen nicht finden oder erzeugen kann, das den 3 Anzeigenamen trennen würde.

Gibt es einen sauberen Weg, um zu bekommen, was ich will?

Smith, John 
Joe, Jane 
All-HQ Group 

Antwort

0

Unglaublich. Die Antwort liegt schon vor mir.
Veröffentlichen Sie dies als Antwort nur für den Fall, dass jemand es braucht.
Sie müssen nur ein weiteres Zeichen in der GetAddress Methode hinzufügen.

bearbeiten: weiteren Leerzeichen verwenden das beste Ergebnis

rawRecip = Application.GetAddress(, "<PR_DISPLAY_NAME>" & " ", , 1, 2, True) 

Es produzieren:

Smith, John , Joe, Jane , All-HQ Group 

Dann Sie Split Funktion und einige Textbearbeitung die gewünschte verwenden können, um bekommen Ergebnis.

Dim i As Integer, dName 
dName = Split(rawRecip, " , ") 
For i = LBound(dName) To UBound(dName) 
    Debug.Print dName(i) 
Next 

Und das Ergebnis:

Smith, John 
Joe, Jane 
All-HQ Group 

Hinweis: mit zusätzlichem Platz auf dem letzten Eintrag