Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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/9/ruby-on-rails-3/4.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
VBA excel ByRef参数类型不匹配_Vba_Excel - Fatal编程技术网

VBA excel ByRef参数类型不匹配

VBA excel ByRef参数类型不匹配,vba,excel,Vba,Excel,Excel中的VBA-我正在尝试向子系统发送自定义数据类型,如下所示: Public Type emailBody emailAddress As String End Type Sub SendEmail(email As emailBody) Dim queryString as String queryString = "email=" & email.emailAddress 'email sending code goes here End Sub 在

Excel中的VBA-我正在尝试向子系统发送自定义数据类型,如下所示:

Public Type emailBody
  emailAddress As String
End Type

Sub SendEmail(email As emailBody)
   Dim queryString as String
   queryString = "email=" & email.emailAddress
   'email sending code goes here
End Sub
在我的行动中:

Private Type emailBody
  emailAddress As String
End Type

Private Sub sendemail_Click()
   Dim emailFields as emailBody
   Dim emailAddress As String
   emailFields.emailAddress = "myemail@example.com"  
   Call SendEmail(emailFields) 
End Sub
我得到这个错误:

ByRef argument type mismatch
在这一行:

Call SendEmail(emailFields) 

来自javascript和PHP背景,因此不确定是什么触发了此错误或我遗漏了什么。

我认为如果
emailAddress
只是一个字符串,就使用
string
作为类型。所以
Sub-sendmail(电子邮件为字符串)
,然后
queryString=“email=“&email
就足够了。也许可以使用“作为新邮件正文”?emailFields应该是不正确的now@Pierre用户定义的类型不是对象,您不能
新建它们。@M.Doerner true,但不能使用显式
调用
(错误是“编译错误:需要变量-无法分配给此表达式”)-OP的代码在我的机器上正常工作:-/@Mat'sMug EmailBody()被宣布两次。删除专用声明解决了此错误。为什么这会导致ByRef错误,而不是某种类型的重复定义错误……对我来说是个谜。我认为如果
emailAddress
只是一个字符串,就使用
string
作为类型。所以
Sub-sendmail(电子邮件为字符串)
,然后
queryString=“email=“&email
就足够了。也许可以使用“作为新邮件正文”?emailFields应该是不正确的now@Pierre用户定义的类型不是对象,您不能
新建它们。@M.Doerner true,但不能使用显式
调用
(错误是“编译错误:需要变量-无法分配给此表达式”)-OP的代码在我的机器上正常工作:-/@Mat'sMug EmailBody()被宣布两次。删除专用声明解决了此错误。为什么这会导致ByRef错误,而不是某种类型的重复定义错误……对我来说是个谜。