在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