在标题中,我想将一个数组传递给由按钮执行的子数据(这就是为什么我不知道将它传递给sub的原因)。在使用按钮执行sub之前,在Sheet中计算数组。 我尝试过使用:
Option Explicit On
Public My_array(1 to 10)
但是我收到一个错误,我不能用array,const等执行该命令。
这样做的正确方法是什么?
答案 0 :(得分:3)
我认为我们可以尝试清除一些术语:您实际上将变量传递给按钮的过程。公共范围的变量将在该过程中可用,并且不需要通过"。
注意:我不确定你的意思"数组是在Sheet"中计算的。除非你使用一些事件程序来计算内存中的数组(可能你不是,因为你没有使用数组作用域或正确声明这样做...),这句话可能不是真。
您的声明应该是:
Public myArray(1 To 10) As Variant 'or As String, As Double, etc.
您可以省略As ...
部分,它将是Variant类型。如果你需要更强类型的数组,那么你需要指定。
此外,On
语句后Option Explict
不是合法关键字。所以,删除它。但请在所有模块中保留Option Explicit
。
您收到的错误消息提示解决方案:您无法在对象模块中放置公共声明。对象模块是VBE中的Worksheet,Workbook,UserForm或Class模块。
您只能将这些声明放在普通的代码模块中。
解决方案:将myArray
的声明移至普通代码模块。