我需要链接两个表,以便当我过滤一个表时,另一个表也会被过滤

我需要链接两个表,以便当我过滤一个表时,另一个表也会被过滤

我正在使用 Microsft 2016,两张工作表上有两个表。它们共享一个公共列。我希望能够以某种方式链接它们,以便当我在公共列中筛选一个表时,另一个表会自动筛选该公共列。公共列没有唯一值 - 其中一些是重复的,一些可能从一个表到另一个表都缺失,但它们在大多数情况下是相同的。我只是想这样做,以便更快地进行筛选,而不必在两个表中输入相同的筛选器。

答案1

:警告:

您要尝试的操作只能通过使用 VBA 宏来实现,并且您需要遵循以下步骤:

在此处输入图片描述


在此处输入图片描述


怎么运行的:

  • 在一张工作表中或两张不同的工作表中创建两个表。
  • 在单元格 T43 和 T44 中输入标准(两个表中的数据/值相同)。
  • 点击 DEVELOPER 选项卡,然后选择 DESIGN 模式,找到其左侧的 INSERT。
  • 表单插入、ACTIVE X 控件,选择命令按钮并在工作表上绘制。

在此处输入图片描述

  • 选择命令按钮并右键单击并点击属性。

  • 现在从列表中找到 CAPTION 并像我一样更改它,或者您也可以输入您选择的名称。

  • 双击命令按钮,Excel 将打开 VB 编辑器。

  • 复制并粘贴 VBA 代码,

     Private Sub CommandButton1_Click()
    
      Copy below show code here,,,
    
     End Sub
    

要复制和粘贴的代码:

lookupdata1 = Range("T43").Value
lookupdata2 = Range("T44").Value

ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=1
ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=1

    ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=1, Operator:=xlFilterValues, _
 Criteria1:=Array("=" & Range("T43").Value, "=" & Range("T44").Value)


ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=1, Operator:=xlFilterValues, _
  Criteria1:=Array("=" & Range("T43").Value, "=" & Range("T44").Value)
   

  • 按 ALT+Q 返回工作表。
  • 从“开发者”选项卡关闭“设计”模式。
  • 将工作簿保存为启用宏。
  • 现在点击命令按钮。

你会发现 Excel 已经根据公共数据同时筛选了两个表

注意: 您可以添加更多条件,在这种情况下您需要编辑此行

 Criteria1:=Array("=" & Range("T43").Value, "=" & Range("T44").Value)
  • 例如:

    Criteria1:=Array("=" & Range("T43").Value, "=" & Range("T44").Value, "=" & Range("T45").Value)
    
  • 您还可以根据需要调整单元格引用和标准。

相关内容