【问题标题】:Excel macro to print sheet based on range values [duplicate]Excel宏根据范围值打印工作表[重复]
【发布时间】:2017-10-28 16:23:48
【问题描述】:

我很难为以下目标找到正确的代码:

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

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

假设我选择了 3 个值分别为 45、50 和 66 的单元格。当我运行宏时,它会将 45 分配给单元格 E5 并打印 sheet1,然后它会将 50 分配给单元格 E5并打印 sheet1,最后将 66 分配给单元格 E5 并打印 sheet1。

另外,我需要在 PDF 中打印每个文件,生成的 PDF 文件名应该是 E5 单元格的值 [基本上类似于 range(e5).value.pdf]。

【问题讨论】:

  • 在其他帖子上没有得到任何答复。并对此进行了更好的解释
  • 你为什么不能edit你之前的问题? (而另一个问题确实有答案,有人仍在积极尝试帮助您。)

标签: excel printing vba


【解决方案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

【讨论】:

  • 这个在 Sheet1.Range("E5").Value2 = Cell.Value2 上返回运行时错误“424”。如何整合 2 个 Sub?
  • 好的。现在很好。非常感谢!
【解决方案2】:

让我们一次处理一个问题。以下是否填写单元格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

【讨论】:

  • 是的,这个很好用!
  • 好的,很好。您是否有要保存 PDF 文件的文件路径?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多