Witam,
Wypróbuj poniższy kod
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
Wspomniałeś, że chcesz wysłać e-mail do PM, którego inicjały znajdują się w tym samym wierszu, który oznaczono jako ukończone. Czy jego adres e-mail znajduje się w tym samym wierszu? Kod w szóstym wierszu pomaga znaleźć inicjały kierownika projektu, możesz go zmienić, aby znaleźć adres e-mail.
Zmień ciąg „done” w piątym wierszu na rzeczywisty ciąg, którego używasz do oznaczania zadania jako zakończonego.
Pamiętaj, że możesz zmienić poniższy fragment kodu zgodnie z własnymi potrzebami.
xMailBody = "Cześć" & vbNewLine & vbNewLine & _
"To jest linia 1" & vbNewLine & _
„To jest wiersz 2”
On Error Resume Next
Z xOutMail
.Do = xDo
.CC = „”
.BCC = „”
.Subject = "wyślij przez test wartości komórki"
.Body = xMailBody
.Wyświetl "lub użyj"
' .Wysłać
Kończyć z
Jeśli masz jakieś pytania, nie wahaj się zapytać mnie.
Amanda