2013-01-09 36 views
0

我使用的是Excel 2010,并且我想知道为什么下面的代码不适合我?我有compile error: syntax errorVBA 7.0中的锯齿阵列 - 语法错误

Sub test() 
Dim myStudents(,) As String = _  
    {{"Dick", "Jane", "Tom", "Sam"}, _ 
    {"Sue", "Bill", "Mary", ""}}  
End Sub 

Example link和代码:

Sub xyz() 
    Dim xyz()()() As Byte 
End Sub 

跑时,这也产生compile error: syntax error

+1

定义“不起作用”。你有错误吗? – LittleBobbyTables

+0

由于'myStydents(,)'结构,我得到'编译错误:语法错误' – Qbik

+2

我不认为在VBA(VBA <> VB)中有锯齿状数组可用。您将需要使用一组数组。 – assylias

回答

2

这是VB.net语法。 VB.net是不一样的VBA,这是在Excel中使用,等等。要做到这一点,你VBA可以这样做:

Public Sub test() 
    Dim myStudents() As Variant 

    myStudents = Array(_ 
       Array("Dick", "Jane", "Tom", "Sam"), _ 
       Array("Sue", "Bill", "Mary") _ 
       ) 

    Debug.Print myStudents(0)(1) ' Jane 
    Debug.Print myStudents(1)(2) ' Mary 
End Sub 

即,我们创建一个数组的数组。