Excelmacros基于范围值打印工作表

我有一些难以find以下目标的正确的代码:

我有一个工作表macros,当我改变单元格E5中的值,自动填充Sheet1中的某些字段,search并返回从其他表SheetTable表中的值。 所以在更换单元格E5之后, sheet1基本上已经可以打印了。

我的目标是在sheetTable的列上select一个范围的值,并将其中的每一个分配给sheet1上的单元格E5,并打印每个值。

所以可以说我select了3个单元格,其值为45,50和66.当我运行这个macros时,它将为单元格E5指定45,然后打印Sheet1 ,然后它将为单元格E5指定50并打印Sheet1 ,最后将66指定给单元格E5和打印sheet1

另外,我需要用PDF格式打印每个文件,得到的PDF文件名应该是E5单元的值[基本上就是range(e5).value.pdf]。

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 

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