2012-04-13 109 views
2

我目前正在使用Excel VBA中的數組處理大量數據。到目前爲止,包含空白單元格的源數據已被視爲零,但現在我必須嘗試區分空白單元格和其中爲零的單元格。VBA:從空數組元素輸出「空白」而不是零

是否有可能使數組輸出什麼,而不是零?這樣的......

aArray(5) as double 
Range("A1:E5") = aArray() 

只會輸出範圍內的單元格對應的數組元素已被填充的東西?如果數組是空的,我仍然會得到[0,0,0,0,0]

+6

您已將aArray聲明爲Double,因此將空轉換爲零。你應該聲明它是Variant。 – 2012-04-13 09:13:07

+0

@TonyDallimore你應該回答 – psubsee2003 2012-04-13 13:03:28

+0

@ psubsee2003。感謝您的建議。 – 2012-04-13 13:54:04

回答

2

從評論轉換,由psubsee2003友善建議。

您已聲明aArray爲Double,因此空元素被轉換爲零。你應該聲明它是Variant。

+0

我實際上正在輸入這個確切的答案,直到我看到您的評論。就像人們討厭'Variant'類型安全缺失一樣,這是處理excel的一些特徵的最好方法,特別是將0和空白字段標識爲不同。 – psubsee2003 2012-04-13 14:06:31

+0

哇,它甚至沒有跨越我的想法使用變體類型,因爲我儘量避免它。但在這種情況下,這是明顯的答案。非常感謝! – beerskij 2012-04-16 08:50:29

+1

你是對的,以避免數據類型變種;有一些東西可以是整數,然後是一個字符串然後是一個數組,並且沒有類型保護。但是,單元格具有與變體類似的靈活性,並且它是任何單元格可以無誤地傳輸或丟失的唯一數據類型。您可以使用函數VarType來告訴您Variant所持有的數據類型。 – 2012-04-16 10:22:02