微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AdvancedFilter - 使用来自另一个非相邻列的值过滤特定列

如何解决AdvancedFilter - 使用来自另一个非相邻列的值过滤特定列

我已经在stackoverflow上问过这个问题,但我认为我让自己模糊不清。你可以在下面看到代码。我想要做的是在列 C 上获取 AdvancedFilter 除了在列 I 中的对之外,还将这些唯一值一起复制到相邻范围(A 到 C 新工作表)

我试图做的是使用 set 并将“折扣”声明为特定范围,该范围也被 & 过滤。重要的是要知道 C:C 会被拆分,因此在新工作表 dws 上它需要 A 列和 B 列,因此变量 discounts 应位于 dws 中的 Clumn C 中。>

Sub Unique_Values_Worksheet_Variables()
    
    Dim wb As Workbook: Set wb = ThisWorkbook
    Dim sws As Worksheet: Set sws = wb.Worksheets("export")
    Dim dws As Worksheet:
    Set dws = wb.Worksheets.Add(After:=wb.Sheets(wb.Sheets.Count))
    **Set discounts = ActiveSheet.Range("I:I")**
    
    sws.Range("C:C" **& discounts**).AdvancedFilter _
        Action:=xlFiltercopy,_
        copyToRange:=dws,_
        Unique:=True

  dws.Columns("A:B").EntireColumn.AutoFit
    Dim rng As Range:
    Set rng = dws.Range("A1:B1",dws.Cells(dws.Rows.Count,1).End(xlUp))
    rng.Borders(xlDiagonalDown).Linestyle = xlNone
    rng.HorizontalAlignment = xlCenter

我想知道的是,& 是否是正确的方法,它是否只是分配范围本身的问题,或者是否是一般逻辑错误

例如

  • 我是否必须先 set 过滤器工作的整个范围? Set Area = ActiveSheet.Range("A:Z")?
  • union 方法是更好的方法吗? (这个我也试过了)

我必须把它写成一个 Makro,因为过滤器工作的工作表只需要一个按钮就可以工作,而工作表本身总是不同的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。