我正在从事一个项目,以自动化工资,并已开发了几个宏,但我有麻烦在最后一步。我正在将数据从一个工作簿复制到另一个工作簿,以便将工时记录表附加到发票表上。然后我自动创建PDF,当我创建PDF时,它们会缩小以适应我附加的较大页面。我插入了一个手动分页符,以便在PDF中创建两个单独的页面,但PDF仍在收缩第一页,无法使其适合整个页面。有没有办法在分页之前进行缩放,使第一页适合完整的PDF大小?
我已经尝试手动更改PDF格式,更改打印预览等。
Sub Excel_to_PDF()
Dim Path As String
Dim filename As String
Dim ws As Worksheet
Dim nm As String
For Each ws In Worksheets
If ws.Visible = xlSheetVisible Then
ws.Select
nm = ws.Name
ActiveSheet.Rows(44).PageBreak = xlPageBreakManual
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
filename:="C:\Users\rober\Desktop\Invoices\" & nm & "-" & ActiveSheet.Range("K6").Value & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If
Next ws
Dim ZoomRng As Range
Set ZoomRng = Range("A1:M43")
ZoomRng.Select
ActiveWindow.Zoom = True
End Sub
我想把PDF分成两页。第44行之前的第一页,以及之后的第二页。这不是问题。这个宏可以做到这一点。我需要的是在第44行之前的工作表被缩放,而不是缩放以适应与第二个工作表相同的尺寸。第一张纸从A1:L43开始,第二张纸从A50:AC110开始。第一张纸因为这个而缩小了,我想把它放大。
发布于 2019-05-30 20:04:33
试试这个我想变焦放错地方了。
Sub Excel_to_PDF()
Dim Path As String
Dim filename As String
Dim ws As Worksheet
Dim nm As String
For Each ws In Worksheets
If ws.Visible = xlSheetVisible Then
ws.Select
nm = ws.Name
Dim ZoomRng As Range
Set ZoomRng = Range("A1:M43")
ZoomRng.Select
ActiveWindow.Zoom = True
ActiveSheet.Rows(44).PageBreak = xlPageBreakManual
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
filename:="C:\Users\rober\Desktop\Invoices\" & nm & "-" & ActiveSheet.Range("K6").Value & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If
Next ws
End Sub
https://stackoverflow.com/questions/56381433
复制