[英]VBA - Public Array Error - Subscript out of range
我想聲明一個公共數組,創建它,然后在另一個子目錄中使用它。 這是我寫的例子:
Public array1() As String
Sub Create_Array()
Dim array1(1 To 4) As String
array1(1) = "1"
array1(2) = "2"
array1(3) = "A"
array1(4) = "B"
End Sub
Sub Show_Some_Index()
Dim a As String
a = array1(1)
MsgBox (a)
End Sub
我收到錯誤9:“下標超出范圍”。 找不到答案,我在做什么錯?
Sub Create_Array
變量array1()
Sub Create_Array
該過程-基本上,這是一個只能在該過程中訪問的局部變量,並且它的名稱與在其他地方聲明的另一個公共字段的名稱相同,所以發生的是Show_Some_Index
正在起作用一個尚未初始化的數組。
Dim
用於聲明變量。 如果要重新定義范圍內的數組,請使用ReDim
關鍵字。
更好的方法是使用返回數組的函數,而不是依賴於全局變量。
我想聲明一個公共數組,創建它,然后在另一個子目錄中使用它。
在這種情況下,請從代碼中刪除Dim
語句。 根據Mat的解釋,這是使代碼正常工作的另一種方法
方式1
Public array1(1 To 4) As String
Sub Create_Array()
array1(1) = "1"
array1(2) = "2"
array1(3) = "A"
array1(4) = "B"
Show_Some_Index
End Sub
Sub Show_Some_Index()
Dim a As String
a = array1(1)
MsgBox (a)
End Sub
方式2
Public array1(1 To 4) As String
Sub Create_Array()
array1(1) = "1"
array1(2) = "2"
array1(3) = "A"
array1(4) = "B"
End Sub
Sub Show_Some_Index()
Create_Array
Dim a As String
a = array1(1)
MsgBox (a)
End Sub
初始化后,應該可以在其他過程中使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.