以下代码非常适用于从工作表3到名为" Post"的工作表创建PDF。而忽略任何隐藏的床单。它为每个工作表创建单独的PDF。这与用户单击的形状相关联,然后提示您选择用于保存所有PDF的文件夹。
我试图更改下面的代码来执行完全相同的操作除了使用工作表3和&#34之间的每个可见工作表创建单个PDF;发布&#34;。 < / p>
我一直在按摩代码一段时间,我想知道是否有人知道实现这一目标的最佳方式?
Sub SaveAllPDF()
Dim i As Integer
Dim Fname As String
Dim TabCount As Long
TabCount = Sheets("Post").Index
'Set the TabCount to the last cell you want to PDF
Dim dialog As FileDialog
Dim path As String
Set dialog = Application.FileDialog(msoFileDialogFolderPicker)
dialog.AllowMultiSelect = False
If dialog.Show = -1 Then
path = dialog.SelectedItems(1)
' Begin the loop.
For i = 3 To TabCount
'Set i = the number of the first sheet you want to PDF in order from left to right To TabCount
If Sheets(i).Visible <> xlSheetVisible Then
Else
With Sheets(i)
Fname = .Range("C15") & " " & .Range("E13") & "-" & .Range("B1")
'The Fname above is equaling the cells that the PDF's filename will be
'The folder directory below is where the PDF files will be saved
.ExportAsFixedFormat Type:=xlTypePDF, FileName:=path & "\" & Fname, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End With
End If
Next i
Call Shell("explorer.exe" & " " & path & "\", vbNormalFocus)
'This opens the folder where the PDFs are saved
End If
End Sub
答案 0 :(得分:1)
如果您使用鼠标选择多个工作表标签,然后选择打印,则会将它们全部打印为一个打印作业,因此请尝试使用代码:
@Entity
@XmlRootElement
public class Persoon extends Contact implements Serializable {
@Temporal(DATE)
private Date geboorteDatum;
public Persoon() {
}
}
注意:没有明示或暗示的保证,您可能需要进行一些调试,因为这不是我的头脑,但它可能会起作用......
答案 1 :(得分:1)
这适用于我的文件,用于通过电子邮件发送可见标签,因为pdf是您的使用,但同样适用...您不需要使用此代码隐藏/不隐藏
' Export activesheet as PDF
With ActiveWorkbook
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile,
Quality:=xlQualityStandard, IncludeDocProperties:=True,
IgnorePrintAreas:=False, OpenAfterPublish:=False
End With
答案 2 :(得分:0)
不是将每个工作表导出循环,而是使用Workbook.ExportAsFixedFormat将整个工作簿导出循环。
使用此方法,参数From
和To
允许您选择要输出的页面。但是,您需要知道可见工作表页码的位置。它可能不一定是每个工作表编号,因为一些工作表可以打印到多个页面。通过手动将整个工作簿保存为PDF来查找页码。
或者,您可以继续循环并使用Adobe Acrobat SDK合并多个PDF。请参阅AcroExch.AvDoc
和AcroExch.PDDoc
个对象。但是,Excel工作簿的用户需要在其计算机上安装Adobe Acrobat(而不仅仅是免费的Reader)才能在VBA中引用Adobe API。