週五01 2019三月
  0 回复
  3.1K訪問
0
投票
復原
嗨,
我是 VBA 新手。 如果 F 列中的單元格值發生變化,我編寫了一個代碼來發送電子郵件,並且代碼運行良好。 但我想確保在發送電子郵件之前保存工作簿。 電子郵件文本正文必須包含參考單元格值,即值更改行的 A 列中的值。 請不要使用 msg,它不適用於工作簿。 工作簿有一個表單,它將輸入值加載到指定的單元格。 該代碼適用於表單。 但是,如果有人進入工作表並手動更新值,電子郵件將發送給用戶,在保存文件之前我不希望這樣做。 請幫忙! 提前致謝。

Private Sub Worksheet_Change(ByVal Target As Range)
將 s1、s2、s3、s4、s5、s6 調暗為範圍
設置 s1 = Range("F1310:F1334")
設置 s2 = Range("F1426:F1450")
設置 s3 = Range("F1339:F1363")
設置 s4 = Range("F1455:F1479")
設置 s5 = Range("F1368:F1392")
設置 s6 = Range("F1397:F1421")
在錯誤恢復下一頁
如果 Target.Cells.Count > 1 然後退出 Sub
'在 F 列中找到改變的值
如果 Intersect(Target, Union(s1, s2, s3, s4, s5, s6)) 是 Nothing 然後退出 Sub
If IsNumeric(Target.Value) And Target.Value <> "" Then
將 xOutApp 調暗為對象
將 xOutMail 調暗為對象
將 xMailBody 調暗為字符串
將 xMailText 調暗為字符串
設置 xOutApp = CreateObject("Outlook.Application")
設置 xOutMail = xOutApp.CreateItem(0)
'從值更改為包含在郵件正文中的行的 A 列的索引值
xMailText = Target.Offset(, -5).Value
xMailBody = "你好" & vbNewLine & vbNewLine & _
“收到發票” & xMailText & vbNewLine & vbNewLine & _
“謝謝” & vbNewLine & vbNewLine & _
“J先生”
在錯誤恢復下一頁
使用 xOutMail
.To = ""
.CC =“”
.BCC =“”
.Subject = "收到發票"
.Body = xMailBody
。發送
結束
在錯誤轉到0
設置 xOutMail = 無
設置 xOutApp = 無
如果結束
END SUB
有沒有為這個職位尚未作出回复。