2014-12-01 53 views
0

我想只能通过q作为函数的参数,以便用户不必输入字符串"q"使用字符作为函数的参数

我有一个模块

Function doThis(val As Variant) 

    MsgBox CStr(val) 

    ' Here is a comparison of val with other strings and additional code 

End 

我把它从我的工作表中定义的函数:

=doThis(q) 

而且在MessageBox返回

Error 2029 

我与串并试图布尔值也是值类型,但只有变体会触发该函数。

是否可以收到q作为参数?

+0

不知道我很理解这个问题。为什么这不起作用?= doThis(“q”)'?因为你会将字母q作为参数传递。否则它会尝试和评估q作为表达式(可能不是正确的词) – Matt 2014-12-01 21:15:17

+0

如果您问是否可以从工作表函数传递字符串参数而不用引号括起来,答案是否定的。 – Joe 2014-12-01 21:19:27

+0

做到这一点的唯一方法是将一个名为q的命名范围设置为'=“q”'。据推测,除了q之外还有其他选项,所以你也需要命名范围。 – 2014-12-01 21:22:40

回答

2

非常简单。首先创建一个定义的名称q

enter image description here

其次在标准模块中:

Function doThis(val As Variant) 
    MsgBox CStr(val) 
    doThis = "" 
End Function 

最后,在工作表:

enter image description here

+0

那很简单。谢谢你,加里 – Attaque 2014-12-02 08:07:52