Excel 2007,VBA表单根据条件筛选工作表记录

时间:2011-05-22 05:08:23

标签: forms excel-vba vba excel

我有一个记录列表,我想通过VBA表单使用它。

例如:下面的记录列表

ID          Score   Date  
------------------------------
228483      80      5/10/2011  
243216      60      4/3/2011  
285483      40      5/1/2011  
291584      30      5/2/2011  
291323      70      4/4/2011  
285607      40      5/7/2011  
7158441     90      5/8/2011  
7083234     10      4/2/2011  

我希望有一个包含多个表单组件的vba表单,每个表单都会根据条件列出上面列表中的记录。

例如,在左上角,组件将列出得分超过50的记录,而在右上角,来自同一类型的另一个组件将列出在第5个月期间实现的记录。

我在VBA表格中的表现并不多,实际上不知道哪个组件会这样做以及如何做。

工作表中的任何更改是否会直接反映到vba表单中的列表中?


感谢兄弟Jonsca和harag的大力支持,是的,我看起来像DataGridView这是一个可滚动和可排序的表从数据库中恢复基于条件..我试图寻找“Microsoft Office电子表格”,但似乎它需要为excel2007添加一些工作来添加它,但我的问题是,我们能否以更简单的方式实现这一点,例如本地网页可以连接到Excel工作表并且具有相同的控制权....我为什么做了草图我正在寻找

http://img849.imageshack.us/img849/3834/13125375.png

在网页与工作表之间构建一个danamic连接是否更容易(并且具有此控件)...非常感谢兄弟们。

1 个答案:

答案 0 :(得分:0)

我建议您使用列表框控件。列表框可以显示多个列,您只需要填充它。像下面这样的东西应该有帮助

'clear the listbox
lst.Clear

' set the number of columns
lst.ColumnCount = 5

' iterate through the cells and populate the listbox
For x = 1 to 10
    With lst
        .AddItem "ID"                       ' Column 1 data
        .List(.ListCount - 1, 1) = "Score"  ' Column 2 data
        .List(.ListCount - 1, 2) = "Date"   ' Column 3 data
        .List(.ListCount - 1, 3) = "Col 4"  ' Column 4 data
        .List(.ListCount - 1, 4) = "Col 5"  ' Column 5 data
        'etc.
    End With
Next

' set the widths of the columns
lst.ColumnWidths = "2.0cm;1.0cm;2.0cm;1.0cm;1.0cm"

您需要相应地提取所需的值

希望这有帮助

编辑: >>工作表中的任何更改是否会直接反映到vba表单中的列表?<< 不,您需要通过VBA代码更新列表框。