我想将数据列表从用户窗体传递到模块?

I want to pass a list of data from a userform to a module?

您好,我正在寻求有关 excel VBA 问题的帮助。我创建了一个用户窗体,它可以让您 select 从一个列表框到另一个列表框的项目列表。用户窗体的代码如下:

Private Sub UserForm_Initialize()
With ColumnName
.AddItem "a"
.AddItem "b"
.AddItem "c"
.AddItem "d"
.AddItem "e"
.AddItem "f"
End With
End Sub

然后

Private Sub AddButton_Click()
For i = 0 To ColumnName.ListCount - 1
If ColumnName.Selected(i) = True Then selectedColumns.AddItem
ColumnName.List(i)
Next i

End Sub

其中列表框 1 是 ColumnName,列表框 2 是选定的列。我一直在尝试通过首先输入此代码将此信息列表传递给单独的模块:

Private Sub CommandButton1_Click()
varSelectedColumns = UserForm2.selectedColumns
Unload UserForm2
End Sub

然后在模块中我想使用这些数据来制作一个字符串所以我有

Public varSelectedColumns As String, srtQuery As String
sub Skeleton_Query1()

UserForm2.Show

strQuery = "SEL * " & Chr(10) & varSelectedColumns

Range("B2").Value = strQuery
End Sub

尝试...

Private Sub CommandButton1_Click()
    Dim i As Long
    varSelectedColumns = ""
    With UserForm2.selectedColumns
        If .ListCount = 0 Then
            Beep
            Exit Sub
        End If
        For i = 0 To .ListCount - 1
            varSelectedColumns = varSelectedColumns & ", " & .List(i)
        Next i
    End With
    varSelectedColumns = Mid(varSelectedColumns, 3)
    Unload UserForm2
End Sub

不过,由于 varSelectedColumns 被分配了一个字符串,您可能希望将其名称更改为 strSelectedColumns 以反映其数据类型。