使用添加项目错误从一个列表框中选择名称到另一个

问题描述

遇到一个问题,我想从一个列表框中选择一个文本并将该文本添加到另一个列表框中。该错误似乎仅在文本中包含“'”且 VBA 似乎拆分文本并将剩余文本添加到下一列时才会发生。另外,我正在处理列表框中的列,我的代码应该从左到右添加每个文本。这很好,但我需要整个文本(包括“.”)而不是拆分文本。

enter image description here

Private Sub btnAddUser_Click()
        
Dim SelectUser,ItemString1,ItemString2 As String,ItemString3 As String

For Each SelectUser In lstusers.ItemsSelected

    Debug.Print lstusers.Column(0,SelectUser)
    Debug.Print lstusers.Column(1,SelectUser)
    Debug.Print lstusers.Column(2,SelectUser)
    
    ItemString1 = lstusers.Column(0,SelectUser)
    ItemString2 = lstusers.Column(1,SelectUser)
    ItemString3 = lstusers.Column(2,SelectUser)
    
    Form_frmAS.lstAddedUsers.AddItem ItemString1,0

    Form_frmAS.lstAddedUsers.AddItem ItemString2,1
    
    Form_frmAS.lstAddedUsers.AddItem ItemString3,2
    
    Form_frmAS.lstAddedUsers.Requery
    
Next SelectUser       
End Sub

有没有办法让它发挥作用,还是我需要找到解决方法

非常感谢

解决方法

ListBox.AddItem method中,第二个参数是列表中的位置,即行号而不是列号。不能一一添加列。

要使其工作,将第二个ListBox的Row Source Type设置为Value List并将代码更改为

For Each SelectUser In lstusers.ItemsSelected
    lstAddedUsers.AddItem lstusers.Column(0,SelectUser) & ";" _
        & lstusers.Column(1,SelectUser) & ";" _
        & lstusers.Column(2,SelectUser)
Next

如果您没有在 AddItem 中指定第二个参数,新项目将自动附加到列表的末尾。