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
    Participant

      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
      Participant

        [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
        Participant

          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
          Participant

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