【问题标题】:I want to pass a list of data from a userform to a module?我想将用户表单中的数据列表传递给模块?
【发布时间】:2017-07-11 11:25:22
【问题描述】:

您好,我正在寻求有关 excel VBA 问题的帮助。我创建了一个用户表单,它允许您从一个列表框到另一个列表框的项目列表中进行选择。 Userform的代码如下:

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

【问题讨论】:

    标签: excel vba listbox userform


    【解决方案1】:

    试试……

    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 以反映其数据类型。

    【讨论】:

      猜你喜欢
      • 2015-03-01
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2021-12-01
      相关资源
      最近更新 更多