【问题标题】:Autofilter with variable/cell as Criteria以变​​量/单元格为标准的自动过滤器
【发布时间】:2019-11-21 00:33:55
【问题描述】:

我想使用自动筛选功能,但我想从另一个工作表的单元格中获取 Criteria1。我尝试使用确切的范围和变量。我成为错误运行时错误 9 subcript out of range 的行。设置 GL = Worksheets("Sheet1").Range("l7").Value。 甚至可能吗?我应该使用其他类型的变量吗? 一开始我在工作表(“DE-CC”)和我从工作表(“Sheet1”),单元格“L7”中获取的标准。有什么建议吗?

Dim GL As Range
Set GL = Worksheets("Sheet1").Range("l7").Value
    Rows("1:1").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("AB1").Select
    Selection.AutoFilter
    ActiveSheet.Range("a2:ab2").AutoFilter Field:=19, Criteria1:=GL

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    这应该工作:

    (未经测试)

    Dim GL As String
    
    GL = Worksheets("Sheet1").Range("l7").Value
    
        Rows("1:1").Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Activesheet.UsedRange.AutoFilter Field:=19, Criteria1:=GL
    

    更改了声明和赋值

    你也应该试试这个,

    Dim GL As String
    
    GL = Worksheets("Sheet1").Range("l7").Value
    
        Activesheet.UsedRange.AutoFilter Field:=19, Criteria1:=GL
    

    【讨论】:

    • 宏不启动。通过 Set GL = Worksheets("Sheet1").Range("l7").Value 我得到编译错误,需要对象:o
    • 好的,我删除“set”,它更进一步。我现在得到错误运行时错误 1004,Range 类的 AutoFilter 方法通过 ActiveSheet.Range("a2:ab2").AutoFilter Field:=19, Criteria1:=GL 行失败
    • 尝试更新的答案。
    • 我仍然不明白插入行的必要性,因为您不会在过滤器中得到任何结果,因为您插入的空白行会切断过滤器
    猜你喜欢
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多