VBA: 用户窗体列表框到字符串
VBA: Userform Listbox to String
我有一个用户表单,人们可以在其中循环浏览并在每次单击时将一个项目添加到列表框。通过单击另一个按钮,项目应转换为以逗号作为分隔符的字符串。
lstDatabase.AddItem txtfruit.Value
我尝试将列表框转换为数组,然后再转换为字符串,但这似乎不起作用
Dim deliverynoteArray() As Variant
Dim deliverynote_list As String
deliverynoteArray = lstDatabase.List
deliverynote_list = Join(deliverynoteArray, ",")
“添加”和“转换”都在 Private Sub _click 部分。这可能是问题所在吗?数据无法访问?
当使用 deliverynoteArray = lstDatabase.List
时,代码将创建一个二维数组,而 Join
仅适用于一维数组。因此,在将列表框元素放入数组后,您应该使用 Transpose
,它将具有多行 和一列的二维数组 转换为一维类型。
尝试将 deliverynote_list = Join(deliverynoteArray, ",")
替换为:
deliverynote_list = Join(Application.Transpose(deliverynoteArray), ",")
Debug.Print deliverynote_list 'just to see it in Immediate Window...
我有一个用户表单,人们可以在其中循环浏览并在每次单击时将一个项目添加到列表框。通过单击另一个按钮,项目应转换为以逗号作为分隔符的字符串。
lstDatabase.AddItem txtfruit.Value
我尝试将列表框转换为数组,然后再转换为字符串,但这似乎不起作用
Dim deliverynoteArray() As Variant
Dim deliverynote_list As String
deliverynoteArray = lstDatabase.List
deliverynote_list = Join(deliverynoteArray, ",")
“添加”和“转换”都在 Private Sub _click 部分。这可能是问题所在吗?数据无法访问?
当使用 deliverynoteArray = lstDatabase.List
时,代码将创建一个二维数组,而 Join
仅适用于一维数组。因此,在将列表框元素放入数组后,您应该使用 Transpose
,它将具有多行 和一列的二维数组 转换为一维类型。
尝试将 deliverynote_list = Join(deliverynoteArray, ",")
替换为:
deliverynote_list = Join(Application.Transpose(deliverynoteArray), ",")
Debug.Print deliverynote_list 'just to see it in Immediate Window...