2017-10-16 10 views
0

このRange.cutエラーを修正しました。 @ Sheet5.Range(行(i)、行(i + 4))。Sheet61.Range(行(i))をカット ヘルプをいただければ幸いです。VBA範囲のオブジェクトが必要ですエラー

Dim i As Long 
Dim maxRow As Long 

    maxRow = 120 
    For i = 20 To maxRow Step 19 

    Sheet5.Range(Rows(i), Rows(i + 4)).Cut Sheet61.Range(Rows(i)) 
next i 
+2

Sheet5'がアクティブシートではない 'のように、あなたがしている何のために[この回答](https://stackoverflow.com/a/46775888/1188513)を参照してくださいルックス間違っている。また、あなたの押し込みは、奇妙です。あなたのコード[** here **](http://rubberduckvba.com/indentation)に貼り付け、 "インデント!" (免責事項:私はそのウェブサイトを所有しています)。 –

+0

(注:オンラインの圧子は大文字と小文字が区別され、小文字の「next」は混乱しています) –

+0

申し訳ありませんが、私の誤植。実際にExcelでチェックし、必要に応じて変更します。他のすべてのスクリプトが正常に動作しているので、シートを有効にすることは役に立ちません。また、 "IDENT"はこの小文字のタイプミスをキャッチしませんでした。 – Pavigo

答えて

1

行(i)は、アクティブなワークシート内の範囲への参照を返します。したがって、一方または他方の範囲は失敗します。ワークシートのコードネームによってプレフィックス行:

Sheet1.Range(Sheet1.Rows(i), Sheet1.Rows(i + 4)).Cut Sheet2.Rows(i) 
+0

RTE 424オブジェクトが必要です。と思う、それは 'カット'の後の部分です – Pavigo

+0

上記のコードサンプルでSheet1をSheet5に、Sheet2をSheet61に変更しましたか?あなたはモジュールの始めにOption Explicitを持っていますか?あなたのコードをコンパイルしましたか? – Excelosaurus

+0

すべてのコードが正しいですが、私はExplicitを使用しませんでした。別のシート、それはちょうど異なる方法を試みている。 – Pavigo

関連する問題