VBA在填写完"完成"

时间:2016-05-30 01:41:39

标签: vba

尝试设置一个小型任务跟踪工作簿,一旦一个单元格被填入“#34;完成" (我们使用outlook)。这是我到目前为止提出的代码,但我无法让它工作

Private Sub Worksheet_Change(ByVal Target As Range)
Dim varActCell As Variant
Set varActCell = Range(ActiveCell).Offset(rowoffset:=0, columnoffset:=-1)

If Target.Column = 5 And InStr(varActCell, "Complete") Then MsgBox "Success"
call: Emailsub

End Sub

我附上了一个类似帖子的链接,其中包含我将使用的电子邮件子句,但我无法激活它。

Can Excel send an email to different users based cell value?

1 个答案:

答案 0 :(得分:0)

你必须省略那些" :"在Call和Emailsub之间,你必须写

Call Emailsub

但你也可以输入

Emailsub

最后,您的Emailsub应该是您提供的链接的sendMail,然后您也会错过将参数传递给您的子网,例如:

sendMail strTo, strSubject, strBodyText 'where the arguments must all be of `String` type

虽然还有两个Optional参数,这意味着您可以选择省略其中任何一个,例如:

Emailsub strTo, strSubject, strBodyText, strCC, oAttachments

Emailsub strTo, strSubject, strBodyText, strCC

Emailsub strTo, strSubject, strBodyText, , oAttachments

如果通过,则最后两个参数应为String类型和Collection类型。

但是Optional Sub可以在没有为它们传递任何值的情况下工作,从而假设default值分别为空字符串("")和a void Collection

已编辑添加用法示例 例如,您可以这样编码:

strTo = "John@provider.com"
strSubject = "hoping it works"
strBodyText = "this is my very first attempt at using VBA and Outlook"
Emailsub strTo, strSubject, strBodyText