首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA:列表框

Excel VBA:列表框
EN

Stack Overflow用户
提问于 2011-02-23 16:58:57
回答 1查看 22.1K关注 0票数 2

假设我有一系列的值:

代码语言:javascript
复制
Customer | Services | Cost  | Paid
Mel      | Abc      | $1.00 | TRUE
Mel      | Def      | $2.00 | FALSE
Xin      | Abc      | $3.00 | TRUE
Titus    | EEE      | $4.00 | TRUE

我希望将这些项插入到列表框中。然而,我有几个标准,那就是只显示特定于用户的项目(例如Mel或Xin或Titus),并且仅在"False“时显示。我该怎么做呢,提前谢谢你。

我现在所拥有的:

代码语言:javascript
复制
Dim lbtarget As MSForms.ListBox
Dim rngSource As Range
Set rngSource = Range("Table1")    
Set lbtarget = Me.ListBox1
With lbtarget
    'Determine number of columns
    .ColumnCount = 4
    'Set column widths
    .ColumnWidths = "50;80;100"
    'Insert the range of data supplied
    .List = rngSource.Cells.Value
End With
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-23 17:37:31

替换

代码语言:javascript
复制
.List = rngSource.Cells.Value

使用

代码语言:javascript
复制
For Each rw In rngSource.Rows
    If rw.Cells(1,1) = <Specify User> And rw.Cells(1,4) = FALSE Then
        .AddItem ""
        For i = 1 To .ColumnCount
            .List(.ListCount - 1, i - 1) = rw.Value2(1, i)
        Next
    End If
Next

使用Mel作为用户的整个子对象

代码语言:javascript
复制
Private Sub CommandButton1_Click()
    Dim lbtarget As MSForms.ListBox
    Dim rngSource As Range
    Dim rw As Range
    Dim i As Long

    Set rngSource = Range("Table1")
    Set lbtarget = Me.ListBox1
    With lbtarget
        .ColumnCount = 4
        .ColumnWidths = "50;80;100"
        For Each rw In rngSource.Rows
            If rw.Cells(1, 1) = "Mel" And rw.Cells(1, 4) = False Then
                .AddItem ""
                For i = 1 To .ColumnCount
                    .List(.ListCount - 1, i - 1) = rw.Cells(1, i)
                Next
            End If
        Next
    End With

End Sub
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5088787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档