Excel Tabelle in Outlook durchsuchen

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von m4rtijn.

    Excel Tabelle in Outlook durchsuchen

    Hi,

    ich versuche gerade ein kleines VBA Script zu erstellen:


    Es soll alle eingehenden Mails kontrollieren (funktioniert)

    Es soll die E-Mails von "check@this.com" behandeln (funktioniert)

    Dann soll es aus der Betreffzeile einen Wert auslesen (funktioniert)


    Danach soll der Wert vom Betreff in der Excel Tabelle gefunden werden (funktioniert leider nicht -- Zeile 37)

    Ich bekomme hier die Fehlermeldung: 1004 - Die Match-Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden.


    Würde mich sehr freuen wenn jemand Tips geben könnte wie ich weiter machen soll.


    Ps. Die Tabelle kann geöffnet werden und ich kann auch Werte ausgeben z.B. mit MsgBox wb.Worksheets("2500").Range("A1").Value
    PsPs. Ich habe die Excel Objekt-Bibliothek eingebunden im Script

    Quellcode

    1. Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    2. Dim objMail_In As Outlook.MailItem
    3. Dim objMail_Out As Outlook.MailItem
    4. Dim aryEntryIDs() As String
    5. Dim lngCount As Long
    6. Dim sSubject As String
    7. Dim inti As Integer
    8. Dim wb As Excel.Workbook
    9. Dim excApp As Excel.Application
    10. Dim lines As Excel.Range
    11. Dim line As Long
    12. 'jedes neue MailItem durchgehen
    13. aryEntryIDs = Split(EntryIDCollection, ",")
    14. For lngCount = 0 To UBound(aryEntryIDs)
    15. On Error GoTo Err_OL
    16. Set objMail_In = Application.Session.GetItemFromID(aryEntryIDs(lngCount))
    17. If (StrComp(objMail_In.SenderEmailAddress, "check@this.com", vbTextCompare) = 0) Then
    18. sSubject = objMail_In.Subject
    19. Set excApp = CreateObject("Excel.Application")
    20. excApp.ScreenUpdating = False ' turn off the screen updating
    21. Set wb = excApp.Workbooks.Open("c:\bla\nummern.xls", True, True)
    22. line = excApp.WorksheetFunction.Match(sSubject, wb.Worksheets("2500").Range("A1:A100"), 0)
    23. 'MsgBox "Found at row : " & line
    24. wb.Close
    25. Set wb = Nothing ' free memory
    26. excApp.ScreenUpdating = True ' turn on the screen updating
    27. End If
    28. Next lngCount
    29. Err_OL:
    30. If Err <> 0 Then
    31. MsgBox Err.Number & " - " & Err.Description
    32. Err.Clear
    33. Resume Next
    34. End If
    35. End Sub

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „m4rtijn“ ()

    gelöst...

    Hi,

    ich hab nach ein wenig googeln rausgefunden warum es nicht funktioniert hat.

    Ich habe einen String mit einen Long verglichen.

    folgende Zeile hat das ganze bereinigt:

    Quellcode

    1. line = excApp.WorksheetFunction.Match(CLng(sSubject), wb.Worksheets("2500").Range("A1:A100"), 0)


    das casten CLng(sSubject) war notwendig.