Fehler in [b] For Each objMailSel In objSelection [/b]

Home-›Foren-›Outlook-›Outlook VBA-›Fehler in [b] For Each objMailSel In objSelection [/b]

4 Antworten anzeigen - 1 bis 4 (von insgesamt 4)
  • Autor
    Beitrag
  • #48090
    Unbekannt
    Teilnehmer

    Hallo,

    ich möchte einen Fehler abfangen der auftritt, wenn ich auch nicht MailItems im Explorer markiere (Run time error 13 Datatype mismatch). Kann man in For Each objMailSel In objSelection eine Abfrage hinzufügen und warum wird das nicht selbstständig gecheckt?

    Danke für die Hilfe
    Grüße Simon

    Public Sub GetSelectedMailItems()
    Dim objFolder As MAPIFolder
    Dim objMailSel As MailItem
    Dim objSelection As Selection

    Select Case Application.ActiveWindow.Class
    Case olExplorer
    Set objFolder = Application.ActiveExplorer.CurrentFolder
    If objFolder.DefaultMessageClass = \“IPM.Note\“ Then
    Set objSelection = Application.ActiveExplorer.Selection
    Select Case objSelection.Count
    Case 0
    MsgBox \“Es sind keine Mails ausgewählt !\“

    Case Else
    For Each objMailSel In objSelection
    Forward objMailSel
    Next
    End Select
    Set objSelection = Nothing

    Else
    MsgBox \“Im Ordner \’\“ & objFolder.Name & _
    \“\‘ sind keine Mails enthalten!\“
    End If
    Set objFolder = Nothing

    #168902
    MichaelBauer
    Teilnehmer

    [code]Dim obj as Object
    Dim Mail as Outlook.MailItem
    For Each obj in Selection
    If TypeOf obj is Outlook.MailItem then
    Set Mail=obj
    ….
    Endif
    Next[/code]

    Viele Grüße
    Michael Bauer

    #168904
    Unbekannt
    Teilnehmer

    Super Danke!

    Dann macht For Each obj in Selection keinen Vergleich, ob das Objekt in Selection auch mit dem Typ von obj übereinstimmt, sondern nimmt einfach jedes Objekt?

    Grüße
    Simon

    #169014
    MichaelBauer
    Teilnehmer

    Der Vergleich findet insofern statt, als dass bei einer falschen Zuweisung ein Fehler ausgelöst wird.

    Du hattest die Variable explizit als MailItem deklariert, darum trat ein Fehler auf, wenn in Selection ein anderer Objekttyp vorhanden war. Bei der Deklaration As Object sind alle Objekttypen erlaubt. Die Prüfung, um welchen Typen es sich genau handelt, findet bei meinem Beispiel ist in der nächsten Zeile mit TypeOf statt.

    Viele Grüße
    Michael Bauer

4 Antworten anzeigen - 1 bis 4 (von insgesamt 4)

-

Hat Ihnen der Beitrag gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Keine Bewertung vorhanden)
Loading...