public 从 useform 加载的数组 vba

public array loaded from useform vba

我正在创建一个宏,我需要访问在模块中创建并填充在 useform(button_click 操作)中的数组。

Private Sub CommandButton1_Click()

Dim tmojo As Worksheet
Dim mojocell As Range

Set tmojo = Sheets("table mojo")
colls = tmojo.Range("N1").End(xlToLeft).Column

i = 1
For Each cCont In Me.Controls

 If TypeName(cCont) = "ComboBox" Then
    If cCont.Enabled = True Then
        If cCont.Value = Empty Then
            MsgBox "you havent specified all the columns"
            Exit Sub
        End If

        ReDim Preserve collname(i)
        collname(i) = cCont.Value
        i = i + 1
    End If
 End If
Next cCont

Call createregion


End Sub

我用来自多个组合框(列名)的值填充数组 collname。然后我想调用位于模块中的 createregion 子,我想访问 collname() 中的值。 我收到错误消息:

Constants, fixed-length strings, arrays, user-defined types, and Declare statements not allowed as Public members of an object module

我需要在多个 sub 中访问这个数组,有什么解决方法吗?

谢谢你的正手。

正确的方法是将您的 UserForm 代码转移到常规模块,并将您的数组声明为 public,在模块的顶部,在每个 subs 之前:

Public MyArr()

传输代码时,您需要将子程序调用到用户窗体的事件中,因此更改所有 MeMe. 到用户窗体的全名

如果你没有时间,你可以简单地在用户窗体模块的顶部声明:

Dim MyArr()