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 (将#修改为@)