尝试设置一个小型任务跟踪工作簿,一旦一个单元格被填入“#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?
答案 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