Excel宏根据范围值打印工作表

时间:2017-10-28 16:23:49

标签: excel excel-vba printing vba

我很难找到适合以下目标的代码:

我有一张带有宏的工作表,当我更改单元格E5中的值时,会自动填充 sheet1 中的某些字段,搜索并返回其他工作表上的表格中的值 - sheetTable )。因此,在更改单元格E5后, sheet1 基本上可以打印了。

我的目标是在 sheetTable 的列中选择一系列值,并将它们中的每一个分配到 sheet1 上的Cell E5,然后打印每个值。

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

另外,我需要用PDF打印每个文件,结果PDF文件名应该是E5单元格的值[基本上类似于范围(e5).value.pdf]。

2 个答案:

答案 0 :(得分:1)

Sub printSelectedCells()
    Dim Path As String
    Dim Cell As Range

    Path = "C:\Users\XXXXX\Desktop\" 'Change to suite.
    'Alternatively you let user select folder by using Application.FileDialog(msoFileDialogFolderPicker)

    For Each Cell In Selection
        Sheet1.Range("E5").Value2 = Cell.Value2
        Sheet1.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            Path & Sheet1.Range("E5").Value2 & ".pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
            True
    Next

End Sub

答案 1 :(得分:0)

让我们一次处理一个问题。以下是否填写单元格E5并按顺序打印每张纸?

Sub Fill_Print()
    Dim Rng As Range, r As Range
    Dim sh1 As Worksheet, shTable As Worksheet

    Set sh1 = Sheets("Sheet1")
    Set shTable = Sheets("sheetTable")
    Set Rng = Selection

    For Each r In Rng
        sh1.Range("E5").Value = r.Value
        sh1.PrintOut
    Next r
End Sub