[英]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.