在VBA

时间:2017-07-13 11:33:26

标签: excel vba excel-vba copy paste

我正在尝试将过滤表的某些行复制并粘贴到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:"方法'范围'对象' _Worksheet'失败&#34 ;.当我以这种方式尝试时会弹出相同的错误:

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

1 个答案:

答案 0 :(得分:2)

  • 范围地址应为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
相关问题