【问题标题】:Item transfer between Listboxes Last Row Issue列表框之间的项目传输最后一行问题
【发布时间】:2018-03-21 15:35:32
【问题描述】:

我有一个列表框,其中的值要移动到另一个列表框,以便用户可以对项目进行排序。当最后一个项目被选中时,它只会移动那个项目并删除它上面的值。我怎样才能让它像列表中的其他项目一样起作用?

仅供参考,这是一个单一的项目选择,如果这改变了任何东西

Option Explicit
Option Base 1

Private Sub Add_Click()
 Dim x As Integer, count As Integer
  count = Me.Unsorted.ListCount
    For x = 0 To count
        If Me.Unsorted.Selected(x) = True Then
            Me.Sorted.AddItem Me.Unsorted.List(x)
        End If
    Next x

    For x = count To 0 Step -1
        If Me.Unsorted.Selected(x) = True Then
            Me.Unsorted.RemoveItem x
        End If
    Next x

End Sub

【问题讨论】:

    标签: vba listboxitem


    【解决方案1】:

    你可以用这个

    Private Sub Add_Click()
        Dim x As Integer
        Dim nSelecteds As Long
    
        With Me
            With .Unsorted
                ReDim selecteds(1 To .ListCount) As Long
                For x = .ListCount - 1 To 0 Step -1
                    If .Selected(x) Then
                        nSelecteds = nSelecteds + 1
                        selecteds(nSelecteds) = x
                        Me.Sorted.AddItem .List(x)
                    End If
                Next x
                If nSelecteds > 0 Then
                    For x = 1 To nSelecteds
                        .RemoveItem selecteds(x)
                    Next x
                End If
            End With
        End With
    End Sub
    

    【讨论】:

    • Liiikkee 一个手套。谢谢!!
    • 不客气。顺便说一句,我编写了代码来解释多选列表框。如果是单选列表框,可以缩小
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 2020-12-14
    相关资源
    最近更新 更多