2017-12-14 4 views
1

Titel sagt alles. Ich habe den Code gestern geschrieben und es hat gut funktioniert. Ich war ein Idiot und speicherte falsch und verlor den Code. Heute habe ich den Code jedoch neu geschrieben, um es umzusetzen, und ich bin nicht sicher, warum die Termine heute nicht erstellt werden. Die Werte werden ordnungsgemäß gespeichert, wenn ich F8 durch mein Sub bin. Wenn jemand auf den hoffentlich dummen Fehler hinweisen könnte, den ich übersehen habe, wäre das ein Lebensretter, da ich ihn selbst nicht finden kann.Outlook-Termin aus Excel-Daten mit VBA erstellen

Sub test() 

    Dim OL As Outlook.Application, Appoint As Outlook.AppointmentItem, ES As Worksheet, _ 
    r As Long, i As Long, WB As ThisWorkbook 

    Set WB = ThisWorkbook 
    Set ES = WB.Sheets("Export Sheet") 
    r = ES.Cells(Rows.count, 1).End(xlUp).Row 
    Set OL = New Outlook.Application 

    For i = 2 To r 
     Set Appoint = OL.CreateItem(olAppointmentItem) 
     With Appoint 
      .Subject = ES.Cells(i, 1).Value 
      .Start = ES.Cells(i, 2).Value 
      .End = ES.Cells(i, 3).Value 
      .Location = ES.Cells(i, 4).Value 
      .AllDayEvent = ES.Cells(i, 5).Value 
      .Categories = ES.Cells(i, 6).Value & " Category" 
     End With 
    Next i 
    Set OL = Nothing 

End Sub 
+3

Was nicht funktioniert? Fehlermeldung? – peakpeak

+0

@peakpeak Es gibt keine Fehlermeldung. Der Code wird wie erwartet ausgeführt, aber nach dem Ausführen des Makros gibt es keine neuen Termine in Outlook. – JustinShotMe

+0

Angenommen, Sie haben hier überprüft und mit Ihren eigenen verglichen? [link] (https://blogs.msdn.microsoft.com/brounoterkaly/2014/07/24/shredinging-appointments-in-outlook-from-excel/) - Sie könnten immer nur das Beispiel von Microsoft kopieren und es zu Ihrem ändern Arbeitsmappe. – Petrichor

Antwort

1

Es ist ein funktionierendes Beispiel here

Es sieht aus wie Sie .Save vom Ende Ihrer Schleife fehlen.

So:

For i = 2 To r 
    Set Appoint = OL.CreateItem(olAppointmentItem) 
    With Appoint 
     .Subject = ES.Cells(i, 1).Value 
     .Start = ES.Cells(i, 2).Value 
     .End = ES.Cells(i, 3).Value 
     .Location = ES.Cells(i, 4).Value 
     .AllDayEvent = ES.Cells(i, 5).Value 
     .Categories = ES.Cells(i, 6).Value & " Category" 
     .Save 
    End With 
Next i 
+0

Wenn meine Antwort Ihnen geholfen hat, markieren Sie bitte als Antwort :) Danke! – Petrichor

+1

Es hat absolut getan. Du bist ein Gentleman (oder eine Dame) und ein Held. – JustinShotMe