VBA excel将数组传递给按钮触发

时间:2014-08-04 14:57:07

标签: arrays excel vba excel-vba

在标题中,我想将一个数组传递给由按钮执行的子数据(这就是为什么我不知道将它传递给sub的原因)。在使用按钮执行sub之前,在Sheet中计算数组。 我尝试过使用:

Option Explicit On
Public My_array(1 to 10)

但是我收到一个错误,我不能用array,const等执行该命令。

这样做的正确方法是什么?

1 个答案:

答案 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的声明移至普通代码模块。