2017-10-27 5 views
-1

셀 E5의 값을 변경할 때 시트 1의 특정 필드를 자동으로 채우고 다른 시트의 테이블에서 값을 검색하고 반환하는 매크로가있는 시트가 있습니다. 시트 테이블).여러 값을 기준으로 시트를 인쇄하는 Excel 매크로

내 목표는 이제 sheetTable에 열에서 값의 범위를 선택하고 각자가 시트 1에 E5에서 셀을 할당하고 각각을 인쇄하는 것입니다. 내가 매크로를 실행하는 경우는 E5 및 인쇄 시트 1이, 그때는 E5 및 인쇄 Sheet1의 셀에 50을 할당합니다 셀 (45)를 할당 45, 50, 66 :

그래서 내가 값으로 3 개 셀을 선택 가정 해 봅시다 그리고 마지막으로 셀 E5에 66을 할당하고 시트 1을 인쇄합니다.

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim KeyCells As Range 
Dim shape As Excel.shape 
' The variable KeyCells contains the cells that will 
' cause an alert when they are changed. 
Set KeyCells = Range("e5") 


If Not Application.Intersect(KeyCells, Range(Target.Address)) _ 
     Is Nothing Then 


For Each shape In ActiveSheet.Shapes 
    shape.Delete 
Next 

InsertPictureInRange Range("f2").Value & Range("e5").Value & ".jpg", _ 
    Range("c9") 
InsertPictureInRange Range("f2").Value & Range("e5").Value & "_1.jpg", _ 
    Range("i9") 

If Range("e5").Value = "" Then Exit Sub 

End If 

End Sub 

답변

1

다음은 선택을 통해 실행하고 Sheet1의 셀 E5에 값을 붙여 넣은 다음 "PrintToFile이"대화 상자가 열립니다. 거기에서 파일 위치와 이름을 수동으로 입력해야합니다.

Dim Rng As Range 
Set Rng = Selection 

Dim Sheet1 As Worksheet 
Set Sheet1 = Sheets("Sheet1") 

    For Each Cell In Rng 
     Sheet1.Range("e5").Value = Cell.Value 
     Sheet1.PrintOut Copies:=1, printtofile:=True, collate:=True, ignoreprintareas:=False 
    Next Cell 

이렇게하면 중간에 도착하게됩니다. 아마도 내가 가진 것보다 더 많은 경험을 가진 사람이 VBA를 사용하여 파일 위치와 이름을 입력하는 방법을 추가 할 수있을 것입니다.

+0

도움 주셔서 감사합니다. 도움이되었지만 작동하지 않습니다. 이 기능은 동일한 시트에서만 작동합니다. 내가 필요한 것은 다른 시트 (테이블이있는 시트)에서 범위를 선택하는 것입니다. 또한 나는 pdf에 sheet1을 인쇄하고 E5에있는 값의 값으로 pdf 파일을 명명하는 코드가 필요하다. 그래서 테이블 시트에서 34,44와 55의 값을 가진 3 개의 셀을 선택하면 다음 파일이 생성됩니다. 34.pdf, 44.pdf 및 55.pdf –

+0

아, 알겠습니다. 명확히 해 주셔서 감사합니다. 필자가 피하는 "SendKeys"를 사용하여 Excel에서 PDF 파일을 저장하는 방법이 있는지 확실하지 않습니다. 내 대답을 업데이트하여 각 값에 대한 인쇄 대화 상자를 여는 방법을 보여줄 것입니다. 거기에서 수동으로 파일 위치와 시트 이름을 입력해야합니다. 완전한 대답은 아닙니다. 그러나 Excel에서 PDF 파일을 저장하는 방법을 계속 찾아 볼 것입니다. –