2014-12-01 51 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