Игнорирование ранее импортированных данных при импорте данных Excel в встречу Outlook - PullRequest
0 голосов
/ 28 марта 2019

У меня есть некоторый код, работающий для импорта данных из Excel, когда ячейка содержит слово «Да». Я хотел бы включить код, чтобы игнорировать любые записи, которые были ранее импортированы, при повторном запуске кода.

Sub Permits()

    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("Permits")
    r = ES.Cells(Rows.Count, 1).End(xlUp).Row
    Set OL = New Outlook.Application
For i = 2 To r



    If ES.Cells(i, 10) = "Yes" Then
    Set Appoint = OL.CreateItem(olAppointmentItem)
    With Appoint
        .Subject = ES.Cells(i, 3).Value
        .Start = ES.Cells(i, 7) + ES.Cells(i, 8).Value
        .ReminderSet = True
        .ReminderMinutesBeforeStart = 60
        .Body = "£" & ES.Cells(i, 6).Value
        .Save
    End With
    End If
Next i
 Set OL = Nothing

End Sub

1 Ответ

0 голосов
/ 28 марта 2019

Вы можете пометить обработанные строки зеленым цветом, например: (отредактировано как req, оно ищет «Да» в ячейке 11)

Option Explicit
Option Compare Text 'ignore case sensitivity when comparing strings

Sub Permits()

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

    Set WB = ThisWorkbook
    Set ES = WB.Sheets("Permits")
    Set OL = New Outlook.Application

    r = ES.Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To r
        With ES.Cells(i, 10)
            If .Value = "Yes" And .Offset(0, 1).Value <> "Yes" Then
                .Offset(0, 1).Value = "Yes"
                With OL.CreateItem(olAppointmentItem)
                    .Subject = ES.Cells(i, 3).Value
                    .Start = ES.Cells(i, 7) + ES.Cells(i, 8).Value
                    .ReminderSet = True
                    .ReminderMinutesBeforeStart = 60
                    .Body = "£" & ES.Cells(i, 6).Value
                    .Save
                End With
            End If
        End With
    Next i

    Set OL = Nothing
    Set WB = Nothing
    Set ES = Nothing

End Sub

Вы также можете создать отдельный столбец, чтобы пометить их и т. Д., Редактировать при необходимости. Кроме того, вы можете поддерживать чистоту таблицы и выполнять поиск существующих напоминаний с теми же данными.

...