2013-12-17 44 views
1

以下存储值的代码,在Excel 2007中宏,扔我RunTime error '91' Object variable or With block variable not setExcel 2007中宏:VB运行时抛出“91”错误当阵列中的

Dim Balance(3, 12, 1) As Object 
    Balance(0, 0, 0) = "abL" 
    Balance(1, 0, 0) = "cd" 
    Balance(2, 0, 0) = "ef" 
    Balance(3, 0, 0) = "gh" 

我是新来的VB。请帮忙。

P.S我已经使用过Java,C#,C,PHP和一些程序集,但从来没有像VB那样感到过任何不舒服。今天可能是一个糟糕的一天。

回答

0

原因很简单。您已宣布该阵列为Object。因为您正在存储String值,因此将其声明为String。尝试这个。这工作

Public Sub Sample() 
    Dim Balance(3, 12, 1) As String 'Or Variant 
    Balance(0, 0, 0) = "abL" 
    Balance(1, 0, 0) = "cd" 
    Balance(2, 0, 0) = "ef" 
    Balance(3, 0, 0) = "gh" 
End Sub 

对于进一步阅读:MSDN Article

从评论

我要存储的字符串和号码相同的多维数组中,因此,我需要保持类型跟进对象 - Salik 4分钟前

在这种情况下使用

Dim Balance(3, 12, 1) As Variant 

例如,这对我的作品。

Public Sub Sample() 
    Dim Balance(3, 12, 1) As Variant 
    Balance(0, 0, 0) = "abL" 
    Balance(1, 0, 0) = 1 
    Balance(2, 0, 0) = "ef" 
    Balance(3, 0, 0) = 2 
End Sub 

进一步阅读:MSDN Article约变量数据类型

+0

不,我不能。我需要它来对象类型数组。我将存储字符串和数字在同一个多维数组,因此,我需要保持类型对象 – Salik

+0

@Salik:然后使用'Variant'如上面的注释(在代码中) –

+0

使用变形给我另一个错误时,存储数字进入它。 '运行时'438'.Object不支持这个属性或方法。'# – Salik