如果单元格包含另一个工作表中的单元格值,则过滤表格

时间:2021-07-26 14:35:30

标签: excel vba

我在 Sheet1 中有 Tabel1,其中包含生产 Buckets 的信息。存储桶编号的示例是“APG-1710-072621-A3”,其中“072621”是日期,粗体部分发生变化。

我在名为 StandardWork "=Today()" 的工作表中的单元格 A2 中有格式为 mmddyy 的日期

当 Table1 是单元格中数据的一部分时,如何按日期过滤它?

我的尝试:

Sub Filter_Bucket()

Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address = StandardWork.Range("A2").Value Then
       Sheet1.Range("Table1").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=StandardWork.Range("A2").Value
   End If

End Sub

如果我走错了方向,请告知,并告诉我在这种情况下你会怎么做。

1 个答案:

答案 0 :(得分:0)

当您使用高级过滤器时,您需要有一个标准。因为我不知道你在哪里创建的条件,我是用代码创建的,过滤后清除。

这是虚拟的“桌子”

enter image description here

将此代码放在工作表模块“StandardWork”中

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing And IsDate(Range("A2")) Then
        ' Transform date to a string
        Dim vDate As String: vDate = CStr(Format(Target.Value, "mmddyy"))
        
        ' Create  the criteria
        Sheet1.Range("D1").Value = "myDate"
        Sheet1.Range("D2").Value = vDate
        
        ' Filter data on sheet1
        Sheet1.Range("A1").CurrentRegion.AdvancedFilter _
            Action:=xlFilterInPlace, _
            CriteriaRange:=Sheet1.Range("D1:D2")
            
        ' Clear the criteria
        Sheet1.Range("D1:D2").ClearContents
   End If
End Sub
相关问题