使用InputBox修改ListBox在UserForm

时间:2018-05-14 10:31:24

标签: excel vba excel-vba

让我先说一下我在Excel中对VBA非常陌生。我的掌握可能远远超出我的能力。

我目前正在努力将特定数据返回到Excel中的UserForm上的ListBox。目前我的代码允许我:

  1. 在Excel中过滤表格,仅显示包含值“FALSE”的行。
  2. 仅将可见信息添加到ListBox中。
  3. 取消过滤表格,如果需要,向用户显示所有数据。
  4. 代码如下:

    Private Sub CommandButton1_Click()
    
    With Sheet1
            ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=3, Criteria1:= _
            "FALSE"
    End With
    
    With ListBox1
        For Each oneCell In Sheets("Sheet1").Range("Table1[Plate ID]").SpecialCells(xlCellTypeVisible)
            .AddItem CStr(oneCell.Value)
        Next oneCell
    End With
    
    With Sheet1
        ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=3
    End With
    
    End Sub
    

    我所追求的是步骤“2a”,我需要用户输入来确定他们需要的数据量。例如,和输入框,请求他们需要的信息行数。因此,如果他们在字段中输入“5”,它只返回5行数据,而不是整个数据集。

    数据集本身将是一组设定的列,但随着更多信息的添加,行数将随着时间的推移而增长。

    我非常感谢您对我的查询的任何帮助!

1 个答案:

答案 0 :(得分:0)

我认为你喜欢这样的事情:

Dim rowlimit As Long
rowlimit = InputBox("Limit to how many rows?", "Limit")

With ListBox1
    For Each oneCell In Sheets("Sheet1").Range("Table1[Plate ID]").SpecialCells(xlCellTypeVisible)
        If .ListCount < rowlimit Then .AddItem CStr(oneCell.Value)
    Next oneCell
End With