|
안녕하세요.
다음과 같이 전체출력 코드를 수정했습니다.
Sub 전체출력() Dim i As Integer Dim intNum As Integer intNum = WorksheetFunction.CountA(Range("월급직이름")) For i = 1 To intNum Range("B3") = Range("월급직이름").Cells(i) ActiveWindow.SelectedSheets.PrintPreview Next i End Sub
문제가 됐던 부분은 intNum 변수에 '급여대장-월' 시트의 사원수를 구하는 부분.
직접 작성하신 코드로 계산하면 intNum 변수에 -1이 저장됩니다.
위의 코드에서는 워크시트 함수(WorksheetFunction) CountA 함수를 사용해서
이미 이름이 정의되어 있는 '월급직이름' 범위(Range)에 대해 개수를 구한 것입니다.
다음 문제는 기존 코드에서 C7 셀에 '시작'부터 i 행씩 내려가면서 값을 지정했는데
현재 '급여명세서-월' 시트에 보면 사원의 이름이 입력되어야 할 부분은 C7 셀이 아니라
목록에서 사원 이름을 선택하는 B3 셀이 되어야 하겠지요. 그걸 C7셀로 가져가게 되어 있구요.
또 '시작'이라는 이름이 두 번 정의되어 있었습니다.
그래서 '월급직이름' 범위(Range)에서 i 번째 셀을 B3 셀에 입력하는 것으로
코드를 수정했습니다.
코드를 분석해 보면 금방 알 수 있을 듯합니다.
감사합니다.
|