如果单元格更改,则根据单元格内容运行宏

Run macro based on cell contents if cell changes

提问人:Eric Pratt 提问时间:10/30/2023 最后编辑:Eugene AstafievEric Pratt 更新时间:11/9/2023 访问量:28

问:

如果单元格仅根据更改的单元格值进行更改,我想运行宏。例如,我希望它查看 F 列,如果 F4 和 F5 中已经有数据,但我在单元格 F6 中输入了一个值,可以是“MMD”、“OPS”或“IMD”,那么我希望它仅基于 F6 内容运行。然后,如果我稍后保持 F4、F5 和 F6 不变,但以相同的方式更改 F7,它将仅根据 F7 的内容运行。也就是说,如果更改的单元格包含“IMD”,我希望它向“IMD”发送一封唯一的电子邮件,如果更改的单元格包含“MMD”,则向“MMD”发送电子邮件,依此类推,并且无论 F 列的其余部分内容如何,只要更改的单元格出现在 F 列中,我都会这样做。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

    Set KeyCells = Range("F4")

If Not Application.Intersect(KeyCells, Range("F4:F20")) _
           Is Nothing Then

    If Sheet1.Range("F4").Value = "IMD" Then
        Call Mail_small_Text_Outlook_IMD
    End If
    
    If Sheet1.Range("F4").Value = "MMD" Then
        Call Mail_small_Text_Outlook_MMD
    End If
    
    If Sheet1.Range("F4").Value = "OPS" Then
        Call Mail_small_Text_Outlook_OPS
    End If
End If

End Sub
Excel VBA 单元 格工作表

评论

0赞 Scott Hunter 10/30/2023
为什么这个标签是“电子邮件?
0赞 Eric Pratt 10/30/2023
在上面的正文中调用的其他子(例如“Mail_small_Text_Outlook_IMD”)如果单元格包含值“IMD”,则会向特定地址发送电子邮件
0赞 Scott Hunter 10/31/2023
但是发送邮件部分不是您要问的。

答: 暂无答案