2012-04-13 12 views
2

現在、Excel VBAで配列を使用して多くのデータを処理しています。これまで空白セルを含むソースデータはゼロとして扱われていましたが、空白セルとゼロが入っているセルを区別して区別する必要があります。VBA:ゼロではなく空の配列要素から "空白"を出力

アレイの出力を0ではなく0にすることはできますか?そのような...

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

何かでいっぱいになっている配列要素に対応する範囲のセルに値を出力するだけですか?配列が空の場合、私はまだ[0,0,0,0,0]を得るでしょう

+6

aArrayをDoubleとして宣言しているため、空の値はゼロに変換されます。それをVariantとして宣言する必要があります。 –

+0

@TonyDallimoreあなたはその答えを – psubsee2003

+0

@ psubsee2003にする必要があります。提案していただきありがとうございます。 –

答えて

2

psubsee2003によって親切に推薦されたように変換されました。

aArrayをDoubleと宣言しているので、空の要素がゼロに変換されます。それをVariantとして宣言する必要があります。

+0

あなたのコメントを見るまで、私は実際にこの正確な答えを入力していました。 Variantの型の安全性の欠如を嫌う人もいれば、0と空白のフィールドを異なるものとして識別するExcelの機能のいくつかを処理する最善の方法です。 – psubsee2003

+0

私は可能な限り避けようとしているので、変種タイプを使用するのは私の心の中でさえもしませんでした。しかし、この状況では明らかな答えです。どうもありがとう! – beerskij

+1

データ型バリアントは避けてください。オーバーヘッドが存在し、整数であっても文字列であっても配列であり、タイプ保護はありません。しかし、セルはバリアントと同じ程度の柔軟性を持ち、エラーや損失なしにセルを転送できる唯一のデータタイプです。関数VarTypeを使用して、バリアントが保持しているデータ型を知ることができます。 –

関連する問題