Excel VBA: список - PullRequest
       11

Excel VBA: список

2 голосов
/ 23 февраля 2011

Допустим, у меня есть диапазон значений как таковой:

Customer | Services | Cost  | Paid
Mel      | Abc      | $1.00 | TRUE
Mel      | Def      | $2.00 | FALSE
Xin      | Abc      | $3.00 | TRUE
Titus    | EEE      | $4.00 | TRUE

и я хочу, чтобы эти элементы были вставлены в список. Однако у меня есть несколько критериев, которые должны отображать элементы, относящиеся только к пользователю (например, Мел или Синь или Титус), и отображаться только при значении «Ложь». Как мне это сделать, спасибо заранее.

Что у меня сейчас:

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

1 Ответ

2 голосов
/ 23 февраля 2011

Заменить

.List = rngSource.Cells.Value

на

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

Whole Sub, используя Mel в качестве пользователя

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...