You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA代码仅识别单元格公式而非计算结果求助

问题解决:读取公式计算结果并触发邮件发送

问题根源

原代码使用的Worksheet_Change事件仅在单元格内容(如公式本身)被手动修改时触发,不会因公式依赖单元格变化导致的计算结果更新而触发。因此当W2的公式计算结果变化时,代码无法响应。

修改后的代码

Private Sub Worksheet_Calculate()
    ' 直接检查W2单元格的计算结果
    If IsNumeric(Range("W2").Value) And Range("W2").Value > 20 Then
        Call Mail_small_Text_Outlook
    End If
End Sub

Sub Mail_small_Text_Outlook()
    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 = "Email Address"
        .CC = ""
        .BCC = ""
        .Subject = "send by cell value test"
        .Body = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0

    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

关键调整说明

  • 替换事件为Worksheet_Calculate:该事件会在工作表中任何公式计算完成后触发,完美适配公式结果变化的场景。
  • 直接读取Range("W2").Value:获取W2单元格公式计算后的实际数值,无需依赖Target参数。
  • 保留原有邮件发送逻辑:仅调整触发条件的触发时机和取值方式,确保邮件功能正常运行。

内容的提问来源于stack exchange,提问作者ChadderO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 09:18:37