Home-›Foren-›Outlook-›Outlook VBA-›Fehler in [b] For Each objMailSel In objSelection [/b]
- This topic has 3 Antworten, 2 Stimmen, and was last updated 08:42 um 25. Februar 2009 by MichaelBauer.
- AutorBeitrag
- 20. Februar 2009 um 19:39 #48090UnbekanntParticipant
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 SimonPublic Sub GetSelectedMailItems()
Dim objFolder As MAPIFolder
Dim objMailSel As MailItem
Dim objSelection As SelectionSelect 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 = NothingElse
MsgBox \”Im Ordner \’\” & objFolder.Name & _
\”\’ sind keine Mails enthalten!\”
End If
Set objFolder = Nothing
…21. Februar 2009 um 14:41 #168902MichaelBauerParticipant[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 Bauer21. Februar 2009 um 15:02 #168904UnbekanntParticipantSuper 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
Simon25. Februar 2009 um 08:42 #169014MichaelBauerParticipantDer 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 - AutorBeitrag