vba - 导出为 pdf,并在一页中包含范围选择单元格

标签 vba excel

我无法以水平格式导出所有范围选择的 PDF,我哪里做错了?

Sub Macro()
Dim wksht As Worksheet
Set wksht = ActiveSheet

Dim path As String
path = "C:\test\"

If Len(Dir(path, vbDirectory)) = 0 Then
    MkDir path
End If

Dim rngeStart
Dim rngeEnd

Set rngeStart = wksht.UsedRange.Find(What:="####", LookIn:=xlValues, LookAt:=xlWhole)
Set rngeEnd = wksht.UsedRange.FindNext(After:=rngeStart)

Dim dataRange As Range
Set dataRange = wksht.Range(rngeStart, rngeEnd)

Dim wb As Workbook
Dim i As Long

For i = 1 To wksht.Range("A" & wksht.Rows.Count).End(xlUp).Row
  wksht.Copy
  With ActiveSheet
     .Range(.Cells(1, 1), .Cells(1, rngeStart.Column - 1)).EntireColumn.Delete
     .Rows("1:" & rngeStart.Row - 1).Delete
End With

这部分用于导出PDF,只有一页,没有所有范围选择:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=path & wksht.Range("A" & i).Value & ".pdf", _ Quality:=xlQualityStandard,
    IncludeDocProperties:=True, IgnorePrintAreas:=False 
ActiveWorkbook.Close 
  Next i
End Sub

pdf中有“适合一页”导出功能吗?

最佳答案

您是否尝试在导出 pdf 之前调整 activesheet 格式? 请将此代码添加到子 Macro() 的开头:

'START FORMAT THE ACTIVE SHEET
Application.PrintCommunication = False

With ActiveSheet.PageSetup
    .CenterHorizontally = True
    .CenterVertically = True
    .Orientation = xlLandscape 'xlPortrait
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
End With

Application.PrintCommunication = True
'END FORMAT THE ACTIVE SHEET

关于vba - 导出为 pdf,并在一页中包含范围选择单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50524428/

相关文章:

vba - 访问行单元格的两种方式之间的差异

sql - Excel 中的 VBA 宏运行 SQL 插入语句

excel - 如何用VBA删除特定列?

excel - VBA随机函数问题 - 关闭工作文件时不起作用

excel - 如何从 Excel 宏运行 SAP GUI 脚本

excel - 如何加快代码搜索多张工作表

vba - 使用 VBA 单击 IE 网页中的链接/按钮

c# - 使用 EPPlus 通过表达式进行条件格式化

python - 在 xlwings 中控制图表类型

excel - 没有循环的进度条