【问题标题】:macro to choose sheet, column, and rows to filter based on cell criteria用于根据单元格条件选择要过滤的工作表、列和行的宏
【发布时间】:2017-02-06 13:39:53
【问题描述】:

刚接触 Excel 宏,试图为我的工作找到一些东西! 非常感谢任何帮助!

我正在尝试制作一个宏来选择工作表 过滤时,全部基于单元格条件。

所以在 Sheet1 中,如果有人在单元格 A1 中键​​入工作表名称“Sheet6”,在单元格 A2 中键入列标题“col_B”,在单元格 A3 中键入过滤条件“banks”,那么宏将在“Sheet6”中查找,找到标题为“col_B”的列,并过滤所有包含文本“banks”的行。这可能吗?

提前感谢您的帮助!

【问题讨论】:

    标签: excel filter macros


    【解决方案1】:

    我刚刚使用另一个工作簿中的代码非常接近。我不完全理解其他代码,因为我从谷歌搜索中得到了一些。这段代码唯一没有做的就是引用列(应该是 R1 变量,但我不知道如何把它放进去)。其中很多看起来与 Gary's Student 的帖子相似。我确信其中有信息可以完成这项工作。所以,再次感谢加里的学生!

    Sub Filter_Stuff()

    Dim r As Range, 暗淡 strName 作为字符串, 将 R1 调暗为字符串, 暗淡 s2 作为工作表,s1 作为工作表,sA 作为工作表

    Set s1 = Sheets("Sheet1")
    Set s2 = Sheets("Sheet2")
    
    
    strName = Range("C5")
    Set sA = Sheets(strName)
    
    R1 = s2.Range("C6")
    
    Set r = sA.Range("1:1").Find(What:=s2.Range("C6").Value, After:=sA.Range("A1"))
    
    r.AutoFilter Field:=1, Criteria1:=s2.Range("C7").Value
    

    结束子

    【讨论】:

    • Gary 的学生帖子发现了这一点。忽略这个。谢谢!
    【解决方案2】:

    你也许可以适应这个:

    Sub FeedingTheVampire()
        Dim sh As Worksheet, cHead As String, crit As String
        Dim rcol As Range
    
        With Sheets("Sheet1")
            Set sh = Sheets(CStr(.Range("A1")))
            cHead = .Range("A2")
            crit = .Range("A3")
        End With
    
        Set rcol = sh.Range("1:1").Find(What:=cHead, After:=sh.Range("A1")).EntireColumn
        rcol.AutoFilter Field:=1, Criteria1:=crit
    End Sub
    

    【讨论】:

    • 谢谢!我会检查一下,看看我能做什么!
    • 这非常有效。太感谢了。我注意到了这个子名称,我希望在接下来的几个月里,随着我不断学习如何做这些事情,我可以做出贡献并帮助至少成为一个乐于助人的吸血鬼,帮助养活其他人;)
    猜你喜欢
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    相关资源
    最近更新 更多