2012-01-31 25 views
8

我從Excel中檢索數據並希望保留我的數組0,但Excel返回1個基數。有沒有一種相當簡單的方法可以將數組從1更改爲0?或者我只需要創建一個循環?將Base 1數組更改爲Base 0 Array

下面是一個例子代碼就在這裏:

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()中的變量數組。Value是基於1的:如果將其更改爲基於0,則可能會導致比解決問題更多的問題,尤其是如果soemone最終維護你的代碼。 – 2012-02-01 00:24:24

+0

是的,我不確定它是如何在VB.NET中完成的,我使用的是我從Excel 2003執行文件創建的庫,並認爲它可能因此而不同。我知道Excel-DNA返回一個基於零的數組,所以我想這就是爲什麼我認爲它是基於.NET的標準。我想我會堅持使用基於1的陣列。如果您將您的評論作爲答案,我會將其標記爲正確,除非其他人時不時有更好的答案。 – Jon49 2012-02-01 02:21:36

+0

@TimWilliams,我剛剛注意到你在談論VBA。所以我想你沒有回答我對.NET的問題。那麼,也許別人會給它一槍! – Jon49 2012-02-01 17:03:38

回答

7

一個循環是最簡單的選擇。

Dim target as string(0 to oData.Length - 1) 

For index = 1 to oData.Length 
    target(index - 1) = oData(index) 
Next 

這是從記憶和未經測試,但它很明顯。