在VBA中复制和粘贴已过滤的行

我正在尝试复制和粘贴过滤表格的一些行到Excel中的单元格范围。 如果应用了filter,则要复制的行现在总是相同的。 我正在尝试将复制的行粘贴到单元格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'object'_Worksheet'失败”。 当我尝试这种方式时popup相同的错误:

 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的新手,我想我可能会缺less一些基本的对象规则。 谢谢。

  • 范围地址应该是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