【问题标题】:ComboBox to filter data in another sheetComboBox 过滤另一个工作表中的数据
【发布时间】:2020-11-19 18:48:42
【问题描述】:

我正在尝试制作一个包含一些标准的 ComboBox 下拉菜单。

我想按总产品持有量过滤。

这个ComboBox在“Main Menu”表中,要过滤的数据在“Consolidated Database”表中。

因此,当我从下拉列表中选择条件时,“综合数据库”中的数据会根据该选择进行过滤。

例如,我从下拉列表中选择“1”,然后“合并数据库”中的数据在 BC 列(“SUM PH ALL”)上被“1”过滤,并且该工作表中的所有数据也按该标准过滤。
如果我在“主菜单”表的下拉列表中选择“1”会发生什么:

VBA 代码显示错误。

Private Sub ComboBox1_Change()
    Dim lastr As Integer
    lastr = Range("BC" & Rows.Count).End(xlUp).Row
    Sheets("Consolidated Database").Range("BC2:BC" & lastr).AutoFilter _
    Field:=55, Criteria1:=ComboBox1.Value, Operator:=x1FilterValues
End Sub

Private Sub ComboBox1_DropButtonClick()
    Me.ComboBox1.ListFillRange = "SUM_PH_ALL"
End Sub

【问题讨论】:

  • 一直说错误...你遇到什么错误?
  • x1FilterValues 应该是xlFilterValues
  • @SamuelEverson 错误消息是“应用程序定义的或对象定义的错误”。但没关系,原来代码中有错字。谢谢!
  • @TimWilliams 啊,是的,非常感谢您指出这一点,我以为我使用了错误的代码,但毕竟这是一个错字:D

标签: excel vba autofilter


【解决方案1】:

代码工作得很好,原来有一个错字。 感谢@TimWilliams 指出我的错字。 所以,这是我更正后的代码:

Private Sub ComboBox1_Change()

Dim lastr As Integer

lastr = Range("BC" & Rows.Count).End(xlUp).Row

Sheets("Consolidated Database").Range("BC2:BC" & lastr).AutoFilter Field:=55, Criteria1:=ComboBox1.Value, Operator:=xlFilterValues

End Sub

 

Private Sub ComboBox1_DropButtonClick()

Me.ComboBox1.ListFillRange = "SUM_PH_ALL"

End Sub

【讨论】:

  • 仅供参考,如果您养成始终使用Option Explicit 的习惯,那么它将使您免于遇到此类问题...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-27
  • 1970-01-01
  • 2017-07-29
  • 2017-12-26
  • 2019-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多