微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

遇到一个问题,我想从一个列表框中选择一个文本并将该文本添加到另一个列表框中。该错误似乎仅在文本中包含“'”且 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 中指定第二个参数,新项目将自动附加到列表的末尾。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。