1. FAQ
  2. 엑셀(Excel)
  3. AfterEffects
  4. Premiere
  5. Photoshop
  6. ETC

이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.

[레벨:30]아별

2011.07.05 01:48



자인님.. 안녕하세요?

 

코드 자체가 논리에 맞지 않구요... 불필요한 배열을 너무 많이 쓰시네요..

vba로 짤 이유가 없는 것 같습니다.

 

피복명단 시트에 있는 명단으로 개인별 급대여품카드를 작성할때..

메인페이지에서 정보를 갖고와서 박아버리는게 좋았을것을.. 개인별 카드를 작성하는 코드는 없네요?

암튼.. 현재 데이터 상태에서는 수식으로 필요한 값을 불러오는 것만으로도 충분히 원하는 결과를 얻을 수 있을 것 같습니다.

 

D6셀에 아래 수식을 넣으시고.. 아래쪽은 채우기하세요..

=IF(B6="","",IF(VLOOKUP(A6,메인페이지!$A:$J,4,0)=0,"",VLOOKUP(A6,메인페이지!$A:$J,4,0)))

 

보통은..

데이터베이스(예제에서는 "피복명단")에서 양식에 맞춰 인쇄를 할때에는

양식지는 하나만 두고, 개인별 카드를 만들어서 바로 바로 인쇄 보내버리는 방법을 씁니다.

개인별 카드를 아래쪽으로 쭉 만들어서 한번에 인쇄하진 않구요..

 

이 방법을 응용하면,

개인별 급여명세서나, 주식매매계약서, 우편 주소 라벨 등도 쉽게 제작할 수 있습니다. ^^

 

첨부파일을 참고하세요..

다운받기 : abyulQnA_card_20110704-1.xlsm

 

관련 코드를 작성해봤습니다.

[idxCode]와 [myDB]는 웍크시트에서 미리 정의해논 영역 이름입니다.

Sub printEachCard()
   
    Dim rngID As Range: Set rngID = [idxCode]
    Dim cntDB As Double: cntDB = [myDB].Rows.Count
    Dim i As Long
   
    For i = 1 To cntDB - 1
        rngID.Value = i
        '### 실제 인쇄할때는 아래 미리 보기 코드를 저 아래 PrintOut코드로 대체하면 됩니다.       
        ActiveWindow.SelectedSheets.PrintPreview
'       ActiveWindow.SelectedSheets.PrintOut
    Next i

 

End Sub

 

 

도움이 되셨기를.. 

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)