2012-01-31 13 views
8

Excelからデータを取得していますが、配列ベースを0に保ちたいが、Excelは1ベースを返します。配列を1から0のベースに戻すかなり簡単な方法はありますか?または、ループを作成するだけでいいですか?ここでベース1配列をベース0配列に変更

は例のコードはここです:

dim oData(,) as object 
dim rng as range 
dim wks as worksheet = xlApp.Activeworkbook.sheets(Sheet1) 

rng=wks.Range("A1:B2") 

oData=rng.Value2 
+0

はいループです。 VBAの仕組みに精通している人は、Range()のバリアント配列が1ベースであることを知っているでしょう:もしそれを0ベースに変更すれば、それは解決するよりも多くの問題を引き起こす可能性があります特に、soemoneがあなたのコードを保守してしまった場合は特にそうです。 –

+0

はい、VB.NETでどのように処理されたのか分かりませんでした。Excel 2003実行ファイルから作成したライブラリを使用していて、そのために違うと考えました。私はExcel-DNAがゼロベースの配列を返すことを知っています。だから、私はそれが.NETで0ベースの標準であると仮定した理由だと思います。私は1ベースの配列に固執すると思います。あなたが答えとしてあなたのコメントを置くならば、私はそれを正しいものとしてマークします。他の誰かがすぐにそしてより良い答えを返さない限り。 – Jon49

+0

@TimWilliams、私はあなたがVBAについて話していたことに気付いた。だから私はあなたが.NETについての私の質問に答えなかったと思います。まあ、他の誰かがそれを撃つだろう! – Jon49

答えて

7

ループは、最も簡単なオプションです。

これはメモリからのもので、テストされていませんが、それだけで十分です。

関連する問題