Вівторок, 20 вересня 2022
  1 відповіді
  4.9 тис. Відвідувань
0
Голосів
розстібати
Привіт! Я новачок у Excel, і мені було цікаво, чи можна налаштувати код Excel таким чином, щоб надсилати електронний лист певній особі, коли значення в стовпці позначено як завершене. Наприклад, якщо JobX знаходиться в A2, а в тому самому рядку ініціали керівників проекту знаходяться в цьому рядку, B2, ця робота позначається як виконана в C2, коли стовпець C буде позначений як завершений, електронного листа слід надіслати менеджеру менеджерів, чиї ініціали знаходяться в цьому ряду. Я знайшов код, який може надсилати електронний лист, коли клітинка стовпця позначається як завершена, але мені було цікаво, чи можу я бути більш конкретним, наприклад надіслати електронний лист певній особі, коли виконуються певні умови. Спасибі,
Кріс
1 рік тому
·
# 3076
0
Голосів
розстібати
Привіт там,

Будь ласка, спробуйте код нижче :)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Range("c:c"), Target) Is Nothing Then Exit Sub
If Target.Value = "done" Then
Set xRg = Target.Offset(0, -1) 'Find email address
Call Mail_small_Text_Outlook(xRg.Value)
End If

End Sub

Sub Mail_small_Text_Outlook(ByVal xTo As String)
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 & _
"This is line 2"
On Error Resume Next
With xOutMail
.To = xTo
.CC = ""
.BCC = ""
.Subject = "send by cell value test"
.Body = xMailBody
.Display 'or use
' .Send
End With
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub

Ви згадали, що хочете надіслати електронний лист PM, ініціали якого знаходяться в тому самому рядку, який позначено як виконане. Його/її адреса електронної пошти в тому самому рядку? Код у 6-му рядку допомагає знайти ініціали керівників проекту, ви можете змінити його, щоб він знаходив адресу електронної пошти.

Змініть рядок «виконано» у 5-му рядку на фактичний рядок, який ви використовуєте для позначення виконання завдання.

Зауважте, що ви можете змінити наведений нижче фрагмент відповідно до своїх потреб.
xMailBody = "Привіт" & vbNewLine & vbNewLine & _
"Це рядок 1" & vbNewLine & _
«Це рядок 2»
On Error Resume Next
За допомогою xOutMail
.To = xTo
.CC = ""
.BCC = ""
.Subject = "відправити тестом значення комірки"
.Body = xMailBody
.Відображати або використовувати
' .Надіслати
Кінець з


Якщо у вас виникнуть будь-які запитання, будь ласка, не соромтеся запитувати мене.

Аманда
  • Сторінки:
  • 1
На цю посаду ще немає відповідей.