当前位置:编程学习 > VB >>

问个在全局使用数组的小白问题??

想在EXCEL的VBA中使用全局数组
Sub Delay(ByVal t As Single)
Public a123 As Byte
Public arr(10) As Byte
End Sub

Private Sub test()
a123 = 1
a123 = 2
arr(10) = 1
a123 = 2
End Sub


提示
arr(10) = 1
编译错误:子过程或函数未定义 定义通用的声明里,也就是程序的最前面,不在任何过程中。
dim arr(10) As Byte
Sub Delay(ByVal t As Single)
Public a123 As Byte

End Sub

Private Sub test()
a123 = 1
a123 = 2
arr(10) = 1
a123 = 2
End Sub
引用 1 楼 chinaboyzyq 的回复:
定义通用的声明里,也就是程序的最前面,不在任何过程中。
dim arr(10) As Byte
Sub Delay(ByVal t As Single)
Public a123 As Byte

End Sub

Private Sub test()
a123 = 1
a123 = 2
arr(10) = 1
a123 = 2
End Sub

编译错误,提示数组不能作为公共成员 dim arr(10) As Byte

用dim定义,而不用public定义,因为你不是在模块定义全局变量。

看我上面给你改的程序。
同意楼上 Public a123 As Byte
Public arr(10) As Byte
Sub Delay(ByVal t As Single)
Public a123 As Byte
Public arr(10) As Byte

'函数中定义的变量,在函数之外是看不到的,并且使用public是非法的,应该使用dim
'但可以定义在蓝色的位置
End Sub

Private Sub test()
a123 = 1
a123 = 2
arr(10) = 1
a123 = 2
End Sub

补充:VB ,  VBA
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,