复制并粘贴 VBA 中过滤的行

Copy and Paste Filtered rows in VBA

我正在尝试将过滤后的 table 的一些行复制并粘贴到 Excel 中的一系列单元格中。由于应用了过滤器,要复制的行现在始终相同。 我正在尝试将复制的行粘贴到单元格 O2。 我试过这样做:

Dim Rows As Range
Rows = Sheet10.Range("B10:B")
With Rows
    .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheet10.Range("O2")
End With
  End Sub

这样做时,我总是得到错误 1004:"Method'Range' of object'_Worksheet' failed"。当我以这种方式尝试时出现相同的错误:

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字 一个范围;
  • 不要用Rows作为可变词,它用在VBA中;
  • Worksheets,不用Sheets,好一点;
  • 在上面使用Option 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