2012-08-06 78 views
4

問題:我想在Access中聲明爲類型爲Long的VBA函數。我想在某些時候返回一個0到35之間的整數,但我也希望能夠返回一個空白或null或類似的東西,大部分時間。有沒有辦法做到這一點?我所嘗試過的(variable =「」或Set variable = Nothing)只是調用一個錯誤。這將在查詢中使用,並將提供一列的值。我希望該列可以輸入Long。如果這樣的事情是不可能的,我想這就是我所需要知道的,因爲我已經有了一個不同的但不太理想的解決方案。謝謝你的幫助。訪問VBA - 返回某種空白/ null函數聲明爲

更新:當然,在提出問題後,我想出了一個很好的解決方案。如果我只是使用Range(「whatever」)。Value = Range(「whatever」).Excel中的值,那麼它會將左對齊的20更改爲右對齊的20,此時它將被數據透視表識別爲數字(雖然當我只是將單元格類型轉換爲Excel中的數字時,它不會被識別爲數據透視表中的數字)。所以,我刪除了背景,因爲它不是必需的。我仍然有興趣知道你是否可以返回某種空白或爲一個聲明爲long的函數返回null。謝謝

+0

+1對於一個有趣的問題! – 2012-08-06 16:11:59

+6

返回-1不會對你有幫助嗎?它應該在0和35的範圍之外。你可以在excel上過濾這些值。 – j0N45 2012-08-06 16:13:27

+0

@ j0N45是的,好點。這是另一種方式。謝謝! – Graphth 2012-08-06 20:48:47

回答

7

Null只能從Variant函數返回。
Nothing只能從Object函數返回。

所有其他人,你只能返回一個定義爲函數返回值的類型的變量。
如果不設置的值,則它返回
數字變量被初始化爲零
可變長度字符串被初始化爲一個零長度的字符串(「」)
一個固定長度字符串是默認值填充ASCII碼0.
日期/時間變量初始化爲零

+0

謝謝,非常有道理。 – Graphth 2012-08-06 20:48:31

2

由於單位長的值爲0,答案是「否」。聲明爲long的函數不能返回null或空白。如果零不是函數的有效返回值,則可以使用它爲「null」等效項,但您已經知道:)