首页 > 解决方案 > 基于复选框的电子邮件 - 如果函数

问题描述

我正在尝试根据是否选中复选框来发送自动邮件。

没有该If功能,该代码可以完美运行。但有了它,我得到:

错误 438:对象不支持此属性或方法。

我宁愿保留该If功能,以便仅通过选中该框来发送邮件。如果没有该If功能,邮件也会在取消选中时发送。

Sub Checkbox1_Click()
    Dim OutLookApp As Object
    Dim Mail As Object
    Dim subject_ As String
    Dim body_ As String
    subject_ = "Something"
    body_ = "Something else"
    If Sheets("Sheet1").CheckBox1.Value = True Then
        Set OutLookApp = CreateObject("Outlook.Application")
        Set Mail = OutLookApp.CreateItem(0)
        Application.DisplayAlerts = False
        With Mail
            .Subject = subject_
            .Body = body_
            .To = "email"
            .CC = "otheremail"
            .Importance = 2
            .Send
        End With
        Application.DisplayAlerts = True
    End If
End Sub

标签: excelvbacheckboxoutlook

解决方案


您可以尝试使用 ActiveSheet.OLEObjects ("CheckBox1")。Object.Value> 0 作为检查它的条件。有关更多信息,请参阅以下链接:

将控件名称与 Shapes 和 OLEObjects 集合一起使用

检查是否选中了基于工作表的复选框


推荐阅读