【问题标题】:Filter worksheet 2 data based on worksheet 1 in same book根据同一本书中的工作表 1 过滤工作表 2 数据
【发布时间】:2016-04-28 17:50:54
【问题描述】:

我正在尝试根据同一工作簿 (MS Excel) 中的工作表 1 数据过滤工作表 2 数据。这是我的要求,我在第一个工作表中有数据,其中包含 100 条记录,它以员工 ID 作为键,但此表将包含与员工个人信息相关的数据,例如姓名、年龄。但是,第二张表将包含该特定员工的更多信息,例如经验详细信息。所以,我想为用户提供一个功能,用户点击员工 ID 然后它将重定向到另一个带有过滤数据的工作表。

以下是在同一工作簿的两个不同工作表中提供的示例数据:

表 1:

名称 |员工证 |年龄 |性 |

ABC     | 123             | 23    | M    |
BCD     | 234             | 25    | F    |

表 2:

员工 ID |以前的公司 |经验

          123       |王牌                                                                                                                                                                                                               王牌4
123                            技术                     | 5
第234章王牌                                                                                                                                                                                                               王牌4

如果我点击表 1 中的 123,那么它应该将我重定向到表 2 并仅过滤 123 条记录。

如果有人知道答案,请尽快回复,因为我需要通过 Java 代码构建此功能。但是,在开始代码之前,我应该知道是否可以通过 excel。

【问题讨论】:

  • 您是否只想从下拉列表中选择一个 ID,然后它会自动显示与 sheet2 中该 ID 相关的所有数据?
  • 不,我想在用户单击员工 ID 值的单元格时过滤 sheet2 中的数据。例如,如果用户单击 sheet1 中员工 ID 为 123 的单元格,那么它将使用员工 ID 123 过滤的数据将他重定向到 sheet2。

标签: java excel filter worksheet


【解决方案1】:

我假设您的 Sheet1 数据从 A1 单元格开始,Employee IDcolumn b 我还假设 sheet2 数据从单元格 A1 开始,Employee IDColumn A 中。

使用以下子程序根据 sheet1 员工 ID 过滤 sheet2 的数据。 使用 sheet1 Worksheet_Change 事件中的代码而不是 Sheet2

如何使用:你必须在Sheet1 Employee ID单元格中double click,然后按EnterTab键。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastUsedRow As Long
Dim FilterCriteria As Variant

    If Not Application.Intersect(Target, Range("B1:B10")) Is Nothing Then
        FilterCriteria = Target.Value
          LastUsedRow = Sheets("Sheet2").Range("A1").End(xlDown).Row
         Sheets("Sheet2").Range("A1:C" & LastUsedRow).AutoFilter Field:=1, Criteria1:=FilterCriteria
        Sheets("Sheet2").Select
    End If

End Sub

更多说明请参见下面的屏幕截图。

【讨论】:

  • 确保双击员工 ID 单元格并按 ENTERTAB 键。 (Target, Range("B1:B10")) 在此处更改范围为您的实际范围。
猜你喜欢
  • 2013-07-05
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多