Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Outlook vba在任务完成时发送电子邮件_Vba_Email_Vbscript_Outlook - Fatal编程技术网

Outlook vba在任务完成时发送电子邮件

Outlook vba在任务完成时发送电子邮件,vba,email,vbscript,outlook,Vba,Email,Vbscript,Outlook,我使用VBScript开发了一个解决方案,用于Outlook中的任务管理 我的问题是,我试图在Outlook任务标记为已完成时发送电子邮件通知 我使用以下代码进行测试,但问题是当任务更改为完成时,这会自动更改这3个属性: 百分比属性 完全属性 状态属性 因此,当任务标记为完成时,会发送3封电子邮件 如何在任务完成时只发送一封电子邮件通知 下面是我的代码,但现在要发送电子邮件来说明属性的更改 Sub Item_PropertyChange(ByVal Name) If Item.Sta

我使用VBScript开发了一个解决方案,用于Outlook中的任务管理

我的问题是,我试图在Outlook任务标记为已完成时发送电子邮件通知

我使用以下代码进行测试,但问题是当任务更改为完成时,这会自动更改这3个属性:

  • 百分比属性
  • 完全属性
  • 状态属性
因此,当任务标记为完成时,会发送3封电子邮件

如何在任务完成时只发送一封电子邮件通知

下面是我的代码,但现在要发送电子邮件来说明属性的更改

Sub Item_PropertyChange(ByVal Name)
    If Item.Status=2 Then
        MsgBox "The " & Name & " property changed."
    End If
End Sub
我的完整代码

Sub Item_PropertyChange(ByVal Name)
    Set oMsg = Application.CreateItem(olMailItem)
    If Item.Status = 2 Then
        With oMsg
            .To = "myemailaddress"
            .Subject = "Task Completed"
            .Body = Item.Subject
            .Send
        End With
    End If
End Sub

我的问题的解决办法如下

若要检查任务是否已完成,必须使用2条if语句。例如,首先检查项目的状态,然后检查项目的状态完成百分比。除非它将永远运行。上面我的问题就是一个例子。 如果有人想使用代码,请查找该代码

Sub Item_PropertyChange(ByVal Name)
    Set oMsg = Application.CreateItem(olMailItem)
    Set objControl = objPage.Controls("TextBox1")
    Set objPage = Item.GetInspector.ModifiedFormPages("P.2")

    Set objControl = objPage.Controls("TextBox1")
    MyValue= objControl.Value

    'If Statement to Trigegr an action When Task Completed
    'To work correct must have second If Statement.
    'If you check just for Complete = True, it will run forever. 

    If Item.Status = olTaskComplete And Item.IsRecurring = False then
     If Item.PercentComplete = 100 then

        With oMsg   
          .Recipients.Add(MyValue)

          .Subject = "Task Completed "
          .Body = Item.Subject
          .Send
        End With

     end if
    end if

结束通话

好主意。这样做的方法是将你的解决方案作为你自己问题的答案发布。几天后,我终于找到了解决方案,我想与大家分享。问题是,如果你想检查任务是否完成,必须使用2个if语句。例如,首先检查项目的状态,然后检查项目的状态完成百分比。除非它将永远运行。上面我的问题就是一个例子。