我很难找到适合以下目标的代码:
我有一张带有宏的工作表,当我更改单元格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]。
答案 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