By kylejohnson95757@gmail.com у п’ятницю, 01 березня 2019 р
Опубліковано в перевершувати
відповіді 0
симпатії 0
думки 3.2K
Голосів 0
привіт,
Я новачок у VBA. Я написав код для надсилання електронного листа, якщо значення комірки змінилося в стовпці F, і код працює чудово. Але я хочу переконатися, що робоча книга збережена, перш ніж надсилати електронний лист. Тіло тексту електронної пошти має містити значення опорної клітинки, яке є значенням зі стовпця А рядка зміненого значення. Будь ласка, не використовуйте msg, це не працюватиме з книгою. Робоча книга має форму, і вона завантажить введене значення до призначених осередків. Код добре працює з формою. Але якщо хтось зайде в аркуш і вручну оновить значення, електронний лист буде надіслано користувачам, чого я не хочу, доки файл не буде збережено. Будь ласка, допоможіть! Заздалегідь спасибі.

Приватний допоміжний робочий лист_Change(ByVal Target As Range)
Dim s1, s2, s3, s4, s5, s6 Як діапазон
Встановіть s1 = Діапазон ("F1310:F1334")
Встановіть s2 = Діапазон ("F1426:F1450")
Встановіть s3 = Діапазон ("F1339:F1363")
Встановіть s4 = Діапазон ("F1455:F1479")
Встановіть s5 = Діапазон ("F1368:F1392")
Встановіть s6 = Діапазон ("F1397:F1421")
On Error Resume Next
Якщо Target.Cells.Count > 1, то вийдіть із Sub
'знайти змінене значення в стовпці F
Якщо Intersect(Target, Union(s1, s2, s3, s4, s5, s6)) є ніщо, вийдіть із підпорядкування
Якщо IsNumeric(Target.Value) і Target.Value <> "" Тоді
Зменшіть xOutApp як об’єкт
Змінити xOutMail як об’єкт
Заглушити xMailBody як рядок
Зменшити xMailText як рядок
Встановіть xOutApp = CreateObject("Outlook.Application")
Встановити xOutMail = xOutApp.CreateItem(0)
'значення індексу зі стовпця А рядка, значення якого було змінено на включене в текст листа
xMailText = Target.Offset(, -5).Value
xMailBody = "Привіт" & vbNewLine & vbNewLine & _
"Рахунок-фактура отримано для " & xMailText & vbNewLine & vbNewLine & _
"Дякую" & vbNewLine & vbNewLine & _
"Містер Дж."
On Error Resume Next
За допомогою xOutMail
.To = "test@gmail.com"
.CC = ""
.BCC = ""
.Subject = "Рахунок-фактура отримано"
.Body = xMailBody
.Надіслати
Кінець з
При помилці GoTo 0
Встановіть xOutMail = Нічого
Встановіть xOutApp = Нічого
End If
End Sub
Переглянути повне повідомлення