none
엑셀 넘버링, 다음 인쇄할 때 이전 넘버에 이어서 할 수 있나요? RRS feed

  • 질문

  • Sheet2 에서

    인쇄할 때마다 머리부분에 해당하는 셀에 (A1, A3)

    고유일련번호가 인쇄되도록 하고 싶습니다.

    문제는 종료 후 다시 파일을 열었을 때 직전 인쇄된 넘버링

    다음부터 이어서 할 수  없다는 데 있습니다.

    인쇄할 넘버링이 2000개여서 한번에 할 수가 없고 몇 일에 나눠서 인쇄해야 합니다.

    검색으로 알아보았는데  인쇄 횟수 카운트를 저장할 수 없다고 하는데요

    가능할까요?

    ---------------------------------------------------------

    Sub 인쇄하기()

      Dim J As Integer
      J = InputBox("몇장인쇄 할까요?")
        For J = 1 To J
           Worksheets(2).Range("A1") = Worksheets(1).Cells(2 * J, 2)
           Worksheets(2).Range("A3") = Worksheets(1).Cells(2 * J + 1, 2)
           ActiveWindow.SelectedSheets.PrintOut
        Next
     End Sub

    -----------------------------------------------------------------------------

    위 VBA 는 검색으로 찾은 것입니다.

    인쇄 종류 후 다음에 인쇄할 때 이어서 하려고 합니다.

    정확한 방법을 알려주시면 감사하겠습니다.

    -------------------------------------------------------------------------------

    sheet1 입니다.

    번호 고유일련번호
    1 rMC6324
    2 Zyc4153
    3 zfZ8423
    4 zXE9429
    5 kes7565
    6 bHj4585
    7

    MFT3769

    sheet2 입니다.

     고유일련번호1
    안내문 서식
     고유일련번호2
    안내문 서식
    2016년 6월 14일 화요일 오전 5:24

답변

  • 안녕하세요.

    우선, 말씀하신 내용을 한번 정리해봤습니다.

    예를들어서 10장 인쇄를 하고싶어서 inputBox에 10을 입력했다고 했을때,

    Sheet2 에 rMC6324 가 최종적으로는 rMC6335 가 되어있어야 한다.

    ※초기 인쇄시에는 이전작업의 마지막 인쇄시 숫자가 들어있으므로 누적계산 처리하기 때문에

    라는 말씀인것 같네요. 맞나요??

     

    우선, 위에 매크로를 조금 수정해보겠습니다.

    아래와 같이 구현하시면 됩니다.

    일단 sheet2 라고 언급하신 고유일련번호1(A1) 고유일련번호(A3) 두개에 대해서 누적처리가 되도록 하였습니다.

    주의하셔야 할점은!!

    이렇게 하시는경우, 엑셀을 저장하지 않고 종료하시면 결국 저장이 안된다는거~ 잊지마시구요.

    코드는 아래와 같습니다.

    한번 확인해보세요.

        Dim J As Integer
        J = InputBox("몇장인쇄 하시겠습니까?")
        For J = 1 To J
            Worksheets(2).Range("A1") = _
                Mid(Worksheets(2).Range("A1").Text, 1, 3) & _
                CStr((CInt(Mid(Worksheets(2).Range("A1").Text, 4, Len(Worksheets(2).Range("A1")) - 3)) + 1))
                
            Worksheets(2).Range("A3") = _
                Mid(Worksheets(2).Range("A3").Text, 1, 3) & _
                CStr((CInt(Mid(Worksheets(2).Range("A3").Text, 4, Len(Worksheets(2).Range("A3")) - 3)) + 1))
    
        Next J

    즐거운 하루 되세요.


    프로그램 개발에는 정답이 없다.

    2016년 6월 17일 금요일 오전 1:15