Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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
Excel 传递变量会产生错误代码“quot;ByRef参数类型不匹配“;因为&引用;_Excel_Vba_Outlook - Fatal编程技术网

Excel 传递变量会产生错误代码“quot;ByRef参数类型不匹配“;因为&引用;

Excel 传递变量会产生错误代码“quot;ByRef参数类型不匹配“;因为&引用;,excel,vba,outlook,Excel,Vba,Outlook,我正在尝试创建一封个性化的群发电子邮件,并获取错误代码 “邮件\正文\邮件”的“ByRef参数类型不匹配” 行内邮件\u正文\u消息 正如@BigBen所提到的,在代码顶部添加Option Explicit。这将迫使您声明变量 Imp注意事项:仅仅声明它们并不能解决您的问题。您需要将它们声明为正确类型 在Sub sendmail()中,参数mail\u body声明为String。因此,在简单语言中,在传递变量之前,需要将其声明为String。这两个例子会让你明白 样本A Option Exp

我正在尝试创建一封个性化的群发电子邮件,并获取错误代码

“邮件\正文\邮件”的“ByRef参数类型不匹配”

行内
邮件\u正文\u消息


正如@BigBen所提到的,在代码顶部添加
Option Explicit
。这将迫使您声明变量

Imp注意事项:仅仅声明它们并不能解决您的问题。您需要将它们声明为
正确类型

Sub sendmail()
中,参数
mail\u body
声明为
String
。因此,在简单语言中,在传递变量之前,需要将其声明为
String
。这两个例子会让你明白

样本A

Option Explicit

Sub Sample()
    Dim mail_body_message

    mail_body_message = "Blah"

    SendEmail mail_body_message
End Sub

Sub SendEmail(mail_body As String)
    MsgBox mail_body
End Sub

样本B

Option Explicit

Sub Sample()
    Dim mail_body_message As String '<~~ Declaring it as the RIGHT TYPE

    mail_body_message = "Blah"

    SendEmail mail_body_message
End Sub

Sub SendEmail(mail_body As String)
    MsgBox mail_body
End Sub
选项显式
子样本()

Dim mail_body_message As String'第一步:将
Option Explicit
添加到模块顶部并声明所有变量。尝试
Sheet1.范围(“A”&行号)。值
Option Explicit

Sub Sample()
    Dim mail_body_message As String '<~~ Declaring it as the RIGHT TYPE

    mail_body_message = "Blah"

    SendEmail mail_body_message
End Sub

Sub SendEmail(mail_body As String)
    MsgBox mail_body
End Sub