VBA / Автоматизация: проверьте электронную почту и даты доступности в файле Excel перед отправкой почты в Outlook - PullRequest
0 голосов
/ 17 января 2019

сообщество

Я совершенно новичок в VBA и могу использовать вашу помощь в моем небольшом проекте, так как не могу найти то, что ищу, но только части в не связанных руководствах. (Может быть, я еще не знаю правильную терминологию?)

Я ищу макрос / автоматизацию в Outlook, который:

• Когда я нажимаю «Отправить», проверяет наличие введенного почтового адреса в указанном столбце в файле Excel, где данные вводились с помощью пользовательской формы;

• Затем проверяет, находится ли текущая дата между датой начала и окончания, введенной рядом с указанным адресом электронной почты (являются отдельными столбцами);

• Когда эти два критерия удовлетворены, меня предупреждает, и я спрашиваю, хочу ли я в любом случае отправить письмо.

Это части головоломки, которые я уже нашел, но мне нужна помощь, чтобы собрать их вместе:

Click “Send” in Outlook email window

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim xPrompt As String
Dim xOkOrCancel As Integer

On Error Resume Next

Перед отправкой вызовите файл Excel (не должен быть видимым) на…

Dim ExApp As Excel.Application
 Dim ExWbk As Workbook
 Set ExApp = New Excel.Application
 Set ExWbk = ExApp.Workbooks.Open("C:\Folder\Folder\File.xls")
 ExApp.Visible = True

 ExWbk.Application.Run "Modul1.HideWb"

 ExWbk.Close SaveChanges:=False

Проверить адрес электронной почты получателя в столбце адреса (столбец A)

Matches “Recipient” field in Outlook email window?
If No, Send email
Still searching for code…

Only found something with “CheckAnd…” but haven’t gotten any farther yet.

Если да, отметьте столбцы с датами «От» и «До» (столбец C) рядом с соответствующим адресом электронной почты

Текущая дата равна или позже даты «От» И раньше или равна дате «До» (столбец D)?

Если нет, отправьте электронное письмо

If CDate(xRgDateVal) - Date => 0 And DDate(xRgDateVal) - Date <= 0 Then

Если да, запрос сообщения:

«Имя» (столбец B) недоступно с «От» до «До». Вы все еще хотите отправить электронное письмо? "

Кнопка:

Да: отправить письмо

Нет: закрыть запрос, не отправлять электронную почту, но держать электронную почту открытой.

Если нет, отправьте электронное письмо

xPrompt = "<Column B> ist von <Column C> bis <Column D> nicht verfügbar. Möchten Sie diese E-Mail trotzdem senden?"
xYesOrNo = MsgBox(xPrompt, vbYesNo + vbQuestion)
If xYesOrNo <> vbYes Then
    Cancel = True
End If
End Sub

Я хотел бы сделать еще кое-что из этого проекта, но если бы я мог просто достичь этого, я был бы в восторге. Ждем ваших советов, руководств, терминологии и / или!

...