根据同一本书中的工作表1过滤工作表2数据

时间:2016-01-22 07:42:35

标签: java excel filter worksheet

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

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

第1页

姓名|员工ID |年龄|性别|

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

第2页

员工ID |上一个公司| EXP

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

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

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

1 个答案:

答案 0 :(得分:0)

我假设您的Sheet1数据从A1单元格开始,而Employee ID位于column b我还假设sheet2数据从单元格A1开始,Employee ID位于Column A

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

使用方法: 您需要在Sheet1 double click单元格中Employee ID,然后按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

有关更多说明,请参阅以下屏幕截图。

enter image description here