2012-12-19 67 views
0

REDIM語句下面的代碼我收到以下錯誤:Expected ')'錯誤在VBScript

**CODE** 

    Set dicParentChild = CreateObject("Scripting.Dictionary") 
    For i = 1 To height 
     width = objExcel1.Application.WorksheetFunction.CountA(ob2.Columns(i)) 
     If width > 2 Then 
     ReDim values(1 To (width - 2)) 
     Key = ob2.Cells(i, 1).Value 
     For j = 3 To width 
      values(j - 2) = ob2.Cells(i, j).Value 
     Next j 
     dicParentChild.Add Key, values 
     End If 
    Next i 

任何一個可以請幫我在這裏?

感謝

回答

3

VBScript中的數組是從零開始的。要指定數組的大小,您必須使用(Re)Dim a(LastIndexToUse)(Re)Dim a(3)將創建一個包含4個時隙(索引:0,1,2,3)的數組。

VBA允許指定第一個最後一個索引(使用From To To語法)。

所以你必須考慮你需要多少物品,減去1得到(Re)Dim的最後一個索引參數,並且當你從你的單元/行/列數中計算數組索引時要非常小心。

+0

但我將'code'改爲'ReDim values(1,(width - 2))'。並刪除錯誤。所以它會起作用嗎?意味着如果我開始從'values(1)'賦值,它會通過任何錯誤嗎? –

+1

@TukaiRakshit - 請使用數組的文檔和(重新)Dim來學習 - 在許多其他有趣的事情中 - ReDim值(1,2)創建/重新構造2x3二維數組。然後使用紙和鉛筆從行/列號計劃您對數組索引的計算。 –

+0

明白了你的觀點!感謝您的正確方向。 VBA和VBS讓我感到困惑,以簡化我的概念:-) –