首页 文章

运行选择动态列的宏时'Error 424 Object required'

提问于
浏览
-1

我想通过使用Ctrl Shift End来录制一个选择整个列的宏,但是如果不使用VBA则不可能 .

这是我的代码:

Sub updatestrial()

    Range(Range("A1"), Range("A1").End(xlDown)).Select.AdvancedFilter            Action:=xlFilterCopy, CopyToRange:=Range( _
    "H5"), Unique:=True

End Sub

2 回答

  • 0

    您无需在VBA中进行选择

    Sub updatestrial()
    
    Range(Range("A1"), Range("A1").End(xlDown)).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("H5"), Unique:=True
    
     End Sub
    

    但这只有在您的数据中没有空白且您没有明确标识该表时才会起作用,因此它只能与当前活动表一起使用 . 如果您想要名为“Sheet1”的工作表的A列中的所有数据,那么更好的解决方案就是

    Sub updatestrial()
     Dim r as Range
     Dim ws as worksheet
     Set ws  = worksheets("Sheet1")
     Set r = ws.range(ws.range("A1"),ws.cells(ws.rows.count,1).end(xlup))
      r.advancedfilter Action:=xlFilterCopy, CopyToRange:=ws.Range("H5"), Unique:=True
    End Sub
    
  • 0

    你那里有一个不必要的 .Select . 尝试:

    Sub UpdatesTrial()
        Range(Range("A1"), Range("A1").End(xlDown)).AdvancedFilter _
            Action:=xlFilterCopy, _
            CopyToRange:=Range("H5"), _
            Unique:=True
    End Sub
    

相关问题