Excel宏根据多个值打印工作表

时间:2017-10-27 09:40:42

标签: excel-vba printing vba excel

我有一张带有宏的工作表,当我更改单元格E5中的值时,会自动填充 sheet1 中的某些字段,搜索并返回其他工作表上的表格中的值 - sheetTable )。

我现在的目标是在 sheetTable 的列中选择一系列值,并将它们中的每一个分配到 sheet1 上的单元格E5,并打印每一个。< / p>

因此,假设我选择3个单元格,其值为:45,50和66.当我运行宏时,它将45分配给单元格E5并打印 sheet1 ,然后它将50分配给单元格E5并打印 sheet1 ,最后将66指定给单元格E5并打印 sheet1

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 个答案:

答案 0 :(得分:1)

以下内容将通过选择并将值粘贴到Sheet1上的单元格E5中,然后打开&#34; PrintToFile&#34;对话框。从那里,您必须手动输入文件位置和名称。

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输入文件位置和名称。