【问题标题】:Populate Listbox With Criteria使用条件填充列表框
【发布时间】:2019-05-06 15:43:02
【问题描述】:

我从一个范围内填充了一个列表框,显示如下

使用以下代码:

    Private Sub UserForm_Initialize()
    Dim rngOneColumn As Range
    

    'Define the source range
    Set rngOneColumn = ThisWorkbook.Worksheets("config").Range("E2:E21")
    
    'Populate listbox item
    ListBox1.List = rngOneColumn.Cells.Value
    
    
End Sub

这会从下表中填充它。

但是,我要显示的是两列:Room & Minor

然后仅在列表框中列出 Room In Use 列 (J) 等于 false 的房间号,并在第二列中显示 Room minor 是 (F) 列中是或否的情况

【问题讨论】:

    标签: excel vba excel-formula


    【解决方案1】:

    根据您的设置,这样的设置应该适合您:

    Private Sub UserForm_Initialize()
    
        Dim wsConf As Worksheet
        Dim aData As Variant
        Dim aOpenRooms As Variant
        Dim ixData As Long
        Dim ixOpen As Long
        Dim lRoomUseCol As Long
        Dim lRoomInterpsCol As Long
        Dim lRoomMinorCol As Long
    
        'Adjust these as needed for your data
        Set wsConf = ThisWorkbook.Worksheets("config")
        lRoomUseCol = 10    'column J
        lRoomInterpsCol = 5 'column E
        lRoomMinorCol = 6   'column F
    
        With wsConf.Range("A1").CurrentRegion
            ReDim aOpenRooms(1 To WorksheetFunction.CountIf(Intersect(.Parent.Columns(lRoomUseCol), .Cells), False), 1 To 2)
            aData = .Value
        End With
    
        For ixData = LBound(aData, 1) To UBound(aData, 1)
            If aData(ixData, lRoomUseCol) = False Then
                ixOpen = ixOpen + 1
                aOpenRooms(ixOpen, 1) = aData(ixData, lRoomInterpsCol)
                aOpenRooms(ixOpen, 2) = aData(ixData, lRoomMinorCol)
            End If
        Next ixData
    
        With Me.ListBox1
            .Clear
            .ColumnCount = UBound(aOpenRooms, 2)
            .List = aOpenRooms
        End With
    
    End Sub
    

    【讨论】:

    • 嗨,谢谢 - 这正是我想要实现的目标。只是一个简单的问题,我如何删除房间号前的“Int”?我知道这是指它是一个 int
    • @BCLtd “Int”来自您的数据。您正在从 E 列填充。如果您只想要房间号,请从 H 列填充。 (所以在这段代码中,你需要将 lRoomInterpsCol5 更改为 8
    • 现在我觉得自己很愚蠢。谢谢,我现在正在查看代码,看看它是如何工作的。非常感谢
    猜你喜欢
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多