【问题标题】:Excel 2007 ,VBA form to filter worksheet records based on conditionExcel 2007,VBA 表单根据条件过滤工作表记录
【发布时间】:2011-06-12 07:49:05
【问题描述】:

我有一个要通过 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

在网页和工作表之间建立动态连接是否更容易(并具有此控件)...在此先感谢兄弟。

【问题讨论】:

  • 到目前为止你尝试过什么?如果您不了解这些表单并且必须使用它们,那么在与它们一起进行项目之前,您应该花时间了解它们的工作原理。
  • 你能告诉我这是什么组件吗,我试过 vba 控件,但我没有得到在表单中显示记录的控件...我在 vba 中有点好,但在表格,我试过了,但还是不明白,也没有人可以问,所以你能帮忙吗?
  • 我只需要根据条件在表单内显示工作表记录的控件名称或组件名称,至少名称:|
  • 有列表框、comdobox 和 refedit,但它们一次显示一个单元格或一个两个列,但我需要一个显示满足条件的多列和行(记录)的组件。
  • 文本框可能是您最好的选择。请参阅this(下半部分)以快速入门。出于您的目的,您可能需要将多行和锁定属性(可在 IDE 左侧的属性框中访问)调整为 true(锁定将阻止用户编辑数据,但仍允许复制)。

标签: forms excel vba


【解决方案1】:

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

'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 代码更新列表框。

【讨论】:

  • 其实就是像图中红色圈出来的东西,应该和工作表中的数据绑定,但这是来自acces,不知道excel有没有?!而且我不知道这个组件的名称。 imageshack.us/photo/my-images/21/captureqwv.jpg
  • 这是一个以编程方式(在条件下)显示许多记录的组件,我可以滚动浏览和排序..抱歉我的评论太乱了
  • 抱歉,我在您的帖子中没有看到任何图片,所以不确定红色圈出的内容。
  • 我不知道这个问题,因为我没问题,链接是...imageshack.us/photo/my-images/21/captureqwv.jpg
  • 在表单设计窗口中,右键单击工具箱并添加新控件。在列表中搜索“Microsoft Office 电子表格”之类的内容,这基本上会将电子表格放在您可以使用的表单上。我个人从来没有使用过这个。
猜你喜欢
  • 2011-03-08
  • 2011-07-26
  • 1970-01-01
  • 1970-01-01
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-05
相关资源
最近更新 更多