在VBA中复制和粘贴筛选的行

在VBA中复制和粘贴筛选的行,vba,excel,copy,paste,Vba,Excel,Copy,Paste,我正在尝试将筛选表中的一些行复制并粘贴到Excel中的一系列单元格中。应用过滤器后,要复制的行现在总是相同的。 我正在尝试将复制的行粘贴到cell O2上。 我尝试过这样做: Dim Rows As Range Rows = Sheet10.Range("B10:B") With Rows .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheet10.Range("O2") End With End Sub Dim Rows

我正在尝试将筛选表中的一些行复制并粘贴到Excel中的一系列单元格中。应用过滤器后,要复制的行现在总是相同的。 我正在尝试将复制的行粘贴到cell O2上。 我尝试过这样做:

Dim Rows As Range
Rows = Sheet10.Range("B10:B")
With Rows
    .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheet10.Range("O2")
End With
  End Sub
Dim Rows As Range
Rows = Sheet10.Range("B10:B")
With Sheet10.Range("B10:B")
    .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheet10.Range("O2")
End With
  End Sub
当这样做时,我总是得到错误1004:“对象的方法“范围”“工作表”“失败”。当我这样尝试时,同样的错误会突然出现:

Dim Rows As Range
Rows = Sheet10.Range("B10:B")
With Rows
    .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheet10.Range("O2")
End With
  End Sub
Dim Rows As Range
Rows = Sheet10.Range("B10:B")
With Sheet10.Range("B10:B")
    .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheet10.Range("O2")
End With
  End Sub
我是VBA新手,我想我可能缺少一些基本的对象规则。谢谢。

  • 范围地址应为
    B10:B100
  • 设置时,请使用
    Set
    单词 范围
  • 不要使用
    作为变量字,它用于VBA
  • 使用
    工作表
    ,而不是
    工作表
    ,这样更好一些
  • 使用顶部的
    选项Explicit
像这样:

Option Explicit

Public Sub TestMe()
    Dim rngRows As Range

    Set rngRows = Worksheets(8).Range("B10:B100")
    With rngRows
        .SpecialCells(xlCellTypeVisible).Copy Destination:=Worksheets(8).Range("O2")
    End With

End Sub