By kylejohnson95757@gmail.com w piątek 01 marca 2019 r
Opublikowany w przewyższać
Odpowiedzi 0
Lubi 0
odwiedzajacy 3.2 tysięcy
Głosów 0
Cześć,
Jestem nowy w VBA. Napisałem kod, aby wysłać wiadomość e-mail, jeśli w kolumnie F nastąpi zmiana wartości komórki, a kod działa świetnie. Ale chcę się upewnić, że skoroszyt jest zapisany przed wysłaniem wiadomości e-mail. Treść wiadomości e-mail musi zawierać wartość komórki referencyjnej, czyli wartość z kolumny A wiersza o zmienionej wartości. Proszę nie używać msg, to nie będzie działać z skoroszytem. Skoroszyt ma formularz i załaduje wartość wejściową do wyznaczonych komórek. Kod działa dobrze z formularzem. Ale jeśli ktoś wejdzie do arkusza i ręcznie zaktualizuje wartość, wiadomość e-mail zostanie wysłana do użytkowników, czego nie chcę, dopóki plik nie zostanie zapisany. Proszę pomóż! Z góry dziękuję.

Prywatny Sub Worksheet_Change (ByVal Target As Range)
Dim s1, s2, s3, s4, s5, s6 jako zakres
Ustaw s1 = Zakres("F1310:F1334")
Ustaw s2 = Zakres("F1426:F1450")
Ustaw s3 = Zakres("F1339:F1363")
Ustaw s4 = Zakres("F1455:F1479")
Ustaw s5 = Zakres("F1368:F1392")
Ustaw s6 = Zakres("F1397:F1421")
On Error Resume Next
Jeśli Target.Cells.Count > 1, to wyjdź z Sub
„znajdź zmienioną wartość w kolumnie F
Jeśli przecięcie (cel, suma (s1, s2, s3, s4, s5, s6)) jest niczym, to zakończ sub
If IsNumeric(Target.Value) And Target.Value <> "" Wtedy
Dim xOutApp jako obiekt
Dim xOutMail jako obiekt
Dim xMailBody jako ciąg
Dim xMailText jako ciąg
Ustaw xOutApp = CreateObject("Outlook.Application")
Ustaw xOutMail = xOutApp.CreateItem(0)
„wartość indeksu z kolumny A wiersza, którego wartość została zmieniona na uwzględnioną w treści wiadomości
xMailText = Cel.Przesunięcie(, -5).Wartość
xMailBody = "Cześć" & vbNewLine & vbNewLine & _
„Otrzymano fakturę za” & xMailText & vbNewLine & vbNewLine & _
„Dzięki” & vbNewLine & vbNewLine & _
„Pan J”
On Error Resume Next
Z xOutMail
.Do = "test@gmail.com"
.CC = „”
.BCC = „”
.Subject = "Otrzymano fakturę"
.Body = xMailBody
.Wysłać
Kończyć z
Przy błędzie GoTo 0
Ustaw xOutMail = Nic
Ustaw xOutApp = Nic
End If
End Sub
Wyświetl pełny post