2016-09-07 2 views
1

ボタンを押したときに自動入力シートに実行する一連のマクロがあります。マクロを個別に実行したときに正常に実行されますが、ボタンごとに順番に呼び出された場合は実行されません。

呼び出される最初のマクロは、そのシート内の特定の列の範囲にオートフィル列を置きます。完全に正常に実行されます。残りのシートは、行2にあるもので100行目まで塗りつぶさなければなりません。

これは1つずつ実行するとうまくいきますが、ボタンを押してすべてのマクロを実行すると、すべてのマクロが適用されますシート1のみ。私が指定したシートの代わりに。

また、オートフィル時に数字が変更され、増分ではなくリピートする必要があるため、これらのすべてが自動入力ではなくDownFilledであれば、はるかに良いでしょう。

Private Sub CommandButton1_Click()  
Fill_It_Down1 
Fill_It_Down2 
Fill_It_Down3 
End Sub 

これは私が書いたマクロです。あなたはワークシートオブジェクトを使用してRange通話のすべての適格ていることを確認する必要があり

Sub Fill_It_Down1() 
Dim source As Worksheet 
Set source = Sheets("Sheet1") 
Range("D2:ZZ2").AutoFill destination:=Range("D2:ZZ" & Range("B" & Rows.Count).End(xlUp).Row) 
End Sub 

Sub Fill_It_Down2() 
Dim source As Worksheet 
Set source = Sheets("Sheet2") 
Range("C2:ZZ2").AutoFill destination:=Range("C2:ZZ2" & 100) 
End Sub 

Sub Fill_It_Down3() 
Dim source As Worksheet 
Set source = Sheets("Sheet3") 
Range("A2:ZZ2").AutoFill destination:=Range("A2:ZZ2" & 100) 
End Sub 
+2

http://stackoverflow.com/documentation/excel-vba/1576/common-mistakes/5110/qualifying-references#t=201609072319376212028かもしれ興味を持っている。 – pnuts

答えて

2

Rangeは、ワークシートのプロパティですので、あなたのコードは、シートモジュールにある場合、あなたが明示的にターゲット・ワークシートを参照する必要があります。

Sub Fill_It_Down1() 
Dim source As Worksheet 
Set source = Sheets("Sheet1") 
With source 
    .Range("D2:ZZ2").AutoFill Destination:=.Range("D2:ZZ" & .Range("B" & .Rows.Count).End(xlUp).Row) 
End With 
End Sub 

Sub Fill_It_Down2() 
Dim source As Worksheet 
Set source = Sheets("Sheet2") 
source.Range("C2:ZZ2").AutoFill Destination:=source.Range("C2:ZZ2" & 100) 
End Sub 

Sub Fill_It_Down3() 
Dim source As Worksheet 
Set source = Sheets("Sheet3") 
source.Range("A2:ZZ2").AutoFill Destination:=source.Range("A2:ZZ2" & 100) 
End Sub 
+0

ありがとう@Cominternそれはそれをやった! –

2

Sub Fill_It_Down1() 

    With Sheets("Sheet1") 
     .Range("D2:ZZ2").AutoFill destination:= _ 
       .Range("D2:ZZ" & .Range("B" & .Rows.Count).End(xlUp).Row) 
    End with 

End Sub 
+0

非常にありがとう@ティムウィリアムズ私はどのように範囲を説明するのか分からなかった。 –

関連する問題