2017-07-13 14 views
1

フィルタ処理されたテーブルの一部の行をコピーしてExcelのセルの範囲に貼り付けようとしています。フィルタが適用されると、コピーされる行は常に同じになります。 コピーした行をセルO2に貼り付けようとしています。 私は、このようにそれを行うことを試みた:VBA内でフィルタ処理された行をコピーして貼り付け

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

このようにそれをやって、私は常にエラー1004を取得:「『object'_Worksheetの』 Method'Rangeを失敗しました」。

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
  • 範囲アドレスは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 
関連する問題