Wtorek, 20 września 2022
  1 Odpowiedzi
  5 tys. Wizyt
0
Głosów
odpiąć
Cześć, jestem bardzo nowy w programie Excel i zastanawiałem się, czy jest możliwe skonfigurowanie kodu programu Excel w taki sposób, aby wysłać wiadomość e-mail do określonej osoby, gdy wartość w kolumnie zostanie oznaczona jako ukończona. Na przykład, jeśli JobX znajduje się w A2, a w tym samym wierszu inicjały kierowników projektów znajdują się w tym wierszu B2, to zadanie zostanie oznaczone jako ukończone w C2, gdy kolumna C zostanie oznaczona jako ukończona, należy wysłać e-mail do kierownika projektu, którego inicjały są w tym rzędzie. Znalazłem kod, który może wysłać wiadomość e-mail, gdy komórka kolumny zostanie oznaczona jako ukończona, ale zastanawiałem się, czy mogę być bardziej konkretny, na przykład wysyłając wiadomość e-mail do określonej osoby, gdy spełnione są określone warunki. Dziękuję,
Chris
1 lat temu
·
#3076
0
Głosów
odpiąć
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
  • Strony:
  • 1
Nie ma jeszcze odpowiedzi na ten post.