Четверг, Февраль 17 2022
  1 Ответы
  5.8 тыс. Посещений
Поэтому я использовал эту прекрасную статью Как автоматически отправлять электронную почту на основе значения ячейки в Excel? (extendoffice. COM) и собрал ответы из ответов, чтобы заставить это работать так, как мне нужно, но последняя часть, которую я не могу понять, - это как дублировать то, что я сделал для запуска нескольких ячеек. Я пытался скопировать/вставить и изменить код с разными значениями, такими как C4, C5 и т. д., но всегда получаю ошибки. У меня он отлично работает, если значение в C3 < 5, оно отправит электронное письмо при сохранении книги. Что мне нужно сейчас, так как это для инвентарного листа, - это проверить несколько других значений ячеек с разными значениями . Например, если только C3 < 5, отправьте электронное письмо. Если только C4 < 6, отправьте электронное письмо. Если C3 < 5, C4 < 6 и C5 < 3, отправьте электронное письмо. Было бы неплохо, если бы при сохранении генерировалось только одно электронное письмо со всеми значениями, соответствующими критериям <. В реальных условиях (а не в терминах программирования) электронная таблица — это место, где технические специалисты могут проверять и извлекать элементы из хранилища. Я пытаюсь сделать так, чтобы электронное письмо автоматически отправлялось, когда кто-то сохраняет книгу, а уровень запасов товара упал ниже определенного значения, поэтому я знаю, что заказ должен быть размещен в ближайшее время. Пока это мой код:

Эта рабочая тетрадь
Частная подпрограмма Workbook_AfterSave (успех ByVal как логическое значение)
On Error Resume Next
Dim xI как целое число
Dim xRg как диапазон
Установите xRg = Диапазон («Информация! C3»)
xI = Int(xRg.Значение)
Если xI < 5 Тогда
Вызов Mail_small_Text_Outlook
End If
End Sub

Module1
Подпрограмма Mail_small_Text_Outlook()
Dim xOutApp как объект
Dim xOutMail как объект
Dim xMailBody как строка
Установите xOutApp = CreateObject("Outlook.Application")
Установите xOutMail = xOutApp.CreateItem(0)
xMailBody = "Привет!" & vbNewLine & vbNewLine & _
"Это строка 1" & vbNewLine & _
Range("Информация!C3") & vbNewLine & _
"Это линия 2"
On Error Resume Next
С xOutMail
.To = "Адрес электронной почты"
.CC = ""
.BCC = ""
.Subject = "проверка значения ячейки"
.Body = xMailBody
.Отобразить или использовать .Отправить
Конец с
По ошибке GoTo 0
Установите xOutMail = Ничего
Установите xOutApp = Ничего
End Sub
2 лет назад
·
#2473
Привет, Джейк,

В соответствии с вашими потребностями, пожалуйста, найдите Эта рабочая тетрадь в Приложения Microsoft Visual Basic окно.
  567959C0-D2E1-4819-85E7-FA20A3D06BE9.png

Двойной клик Эта рабочая тетрадь и скопируйте код ниже:

'Update by Extendoffice 2022/2/17
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

On Error Resume Next

Dim RgC3 As Range
Dim RgC4 As Range
Dim RgC5 As Range

Set RgC3 = Range("Information!C3")
Set RgC4 = Range("Information!C4")
Set RgC5 = Range("Information!C5")


If (IsNumeric(RgC3) And RgC3.Value < 5) And (IsNumeric(RgC4) And RgC4.Value < 6) And (IsNumeric(RgC5) And RgC5.Value < 3) Then
Call Mail_small_Text_Outlook

ElseIf IsNumeric(RgC3) And RgC3.Value < 5 Then
Call Mail_small_Text_Outlook

ElseIf IsNumeric(RgC4) And RgC4.Value < 6 Then
Call Mail_small_Text_Outlook

End If

End Sub


Sub Mail_small_Text_Outlook()


Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi there" & vbNewLine & vbNewLine & _
"This is line 1" & vbNewLine & _
Range("Information!C3") & vbNewLine & _
"This is line 2"
On Error Resume Next
With xOutMail
.To = "Email Address"
.CC = ""
.BCC = ""
.Subject = "send by cell value test"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing

End Sub


Пожалуйста, измените часть xMailBody по мере необходимости.

Аманда
  • Страница:
  • 1
Там нет ответов, сделанные на этот пост пока нет.