2016-09-07 1 views
1

버튼을 누르면 자동 완성 시트로 실행하려는 일련의 매크로가 있습니다.매크로가 개별적으로 실행될 때 정상적으로 실행되지만 버튼에 의해 차례로 호출 될 때 제대로 실행되지 않습니다.

호출 된 첫 번째 매크로는 자동 채우기 열을 해당 시트의 특정 열 범위까지 가며 완벽하게 실행됩니다. 나머지 시트는 행 2에있는 것이 무엇이든간에 100 번째 행까지 채워야합니다.

이것은 하나씩 실행될 때 제대로 실행되지만 버튼을 모두 눌러 모두 실행하면 모든 매크로가에 적용됩니다. Sheet1 전용. 내가 지정한 시트 대신에.

또한 Autofill보다는 DownFilled가 좋을 것입니다. 숫자를 자동 완성 할 때 번호가 바뀌므로 숫자가 증가하지 않고 반복해야하기 때문입니다.

Private Sub CommandButton1_Click()  
Fill_It_Down1 
Fill_It_Down2 
Fill_It_Down3 
End Sub 

이들은 내가 작성한 매크로입니다.

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

당신은 당신이 워크 시트 개체와 Range 전화의 모든 자격을하고 있는지 확인해야합니다

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

대단히 감사합니다 @ 팀 윌리엄스 나는 범위를 설명하는 방법을 몰랐습니다. –

관련 문제