excel - Excel VBA 使用 Range.ExportAsFixedFormat 自动打印文件名和位置
问题描述
https://www.contextures.com/excelvbapdf.html 以下是完美的,但它会打印整个工作表。
全线程
Sub PDFActiveSheet()
'www.contextures.com
'for Excel 2010 and later
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
On Error GoTo errHandler
Set wbA = ActiveWorkbook
Set wsA = ActiveSheet
strTime = Format(Now(), "yyyymmdd\_hhmm")
'get active workbook folder, if saved
strPath = wbA.Path
If strPath = "" Then
strPath = Application.DefaultFilePath
End If
strPath = strPath & "\"
'replace spaces and periods in sheet name
strName = Replace(wsA.Name, " ", "")
strName = Replace(strName, ".", "_")
'create default name for savng file
strFile = strName & "_" & strTime & ".pdf"
strPathFile = strPath & strFile
'use can enter name and
' select folder for file
myFile = Application.GetSaveAsFilename _
(InitialFileName:=strPathFile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Select Folder and FileName to save")
'export to PDF if a folder was selected
If myFile <> "False" Then
wsA.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=myFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
'confirmation message with file info
MsgBox "PDF file has been created: " _
& vbCrLf _
& myFile
End If
exitHandler:
Exit Sub
errHandler:
MsgBox "Could not create PDF file"
Resume exitHandler
End Sub
但我遇到了麻烦
'export to PDF if a folder was selected
If myFile <> "False" Then
` wsA.ExportAsFixedFormat
Type:=xlTypePDF,
Filename:=myFile,
Quality:=xlQualityStandard,
IncludeDocProperties:=True,
IgnorePrintAreas:=False,
OpenAfterPublish:=False`
我想要完成的唯一一件事是打印一个范围(最好命名)来代替整个工作表。我创建了 dims 并设置了一个范围来代替“wsA”工作表,它很麻烦。
Dim rnG As Range
Set rnG = Range("Y1:AG46")
rnG.ExportAsFixedFormat _
是我添加的唯一行。它会按我的意愿工作,但间歇性地工作,我不知道为什么。它以黄色显示整个 ExportFileAsFixedFormat 子文本,并指出无法识别指定的 Range。
解决方案
我怀疑这是因为您没有限定范围。尝试
Set rnG = wsA.Range("Y1:AG46")
没有限定仅当wsA
是活动工作表时才能正常工作。
推荐阅读
- javascript - 如何使用 Express & MySQL 和 JWT 实现成员函数
- csv - NetLogo - 使用 BehaviorSpace 获取所有海龟位置作为每次重复的结果
- apache - Apache - RequestReadTimeout 的限制范围
- python-3.x - 在python中将多个CSV行合并为1
- c# - 从 Windows 2012 服务器下载 Excel 电子表格的 Asp.NET 导致错误
- c# - 如何在 System 命名空间中创建 ToInt32 方法?
- c# - 在 Excel 中,如何在隐藏的行和列中显示数据
- javascript - 在 Google 表格中提交后弹出表单不会关闭
- reactjs - 有没有办法创建一种通用方法来减少状态类似操作的代码量?
- symfony - Symfony 路线。无法设置注释