2013-12-17 40 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