2016-09-14 11 views
1

VBAでオートフィル機能を作成しようとしており、機能させることができません。エラーメッセージが表示されます。Rangeクラスエラーのオートフィルメソッド。誰かがなぜ私はそれを動作させることはできません、またはより良いまだそれを動作させるVBAコードを私に説明してくださいできますか?事前のおかげで、以下のコードを参照してください。(コードが大きく、コードのほんの一部であり、私はそれがSourceRangeまたはFillRangeと間違って何もないかなり確信して、私は行でエラーが出ます:SourceRange.AutoFill Destination:=FillRangeRangeクラスエラーのオートフィルメソッド

Set SourceRange = Worksheets("Sheet2").Range(ActiveCell.Offset(-1, 0), ActiveCell.Offset(-1, 0)) 
Set FillRange = Worksheets("Sheet2").Range(Selection, ActiveCell.Offset((Lenght1.Count), 0)) 
SourceRange.AutoFill Destination:=FillRange 
+0

てみ 'msgbox'ingあなた' SourceRange'と 'FillRange'あなたは彼らが設定されている右後。あなたは期待値を得ていますか? – Tyeler

+0

@Marcus Forsbergは、「Lenght1.Count」があなたのコード内で数字を得ている限り、私の答えをテストします –

+0

@Marcus Forsbergはあなたの下のコードを試しましたか? –

答えて

1

勧告ActiveCellSelectionを避ける方が良いです。 Range("B1")(たとえば)、またはCells(1,"B")を代わりに使用してください。

Set SourceRange = Worksheets("Sheet2").Range(ActiveCell.Offset(-1, 0).Address & "," & ActiveCell.Offset(-1, 0).Address) 
Set FillRange = Worksheets("Sheet2").Range(Selection.Address & "," & ActiveCell.Offset((Lenght1.Count), 0).Address) 

SourceRange.AutoFill Destination:=FillRange 

編集1

Set SourceRange1 = Worksheets("Blad1").Range("A1:A2") 

' you need to set the Range from A1 
Set FillRange1 = Worksheets("Blad1").Range("A1:A10") 

SourceRange1.AutoFill Destination:=FillRange1 
+0

答えをありがとう!私は以下のような簡単なオートフィルをしようとしましたが、同じエラーが発生します。私には何か追加できないものがありますか? 設定SourceRange1 =ワークシート( "Blad1")範囲。( "A1:A2") 設定FillRange1 =ワークシート( "Blad1")範囲( "A4:A10")。 SourceRange1.AutoFill先:= FillRange1 –

+0

@ MarcusForsbergが私の編集した答えを見て、あなたはRange( "A1:A10")に 'FillRange1'を設定する必要があります –

関連する問題