Dim
FPath
As
String
FPath
=
Application.ActiveWorkbook.Path
Application.DisplayAlerts
=
False
Application.ScreenUpdating
=
False
Dim
wbook
As
Workbook
Dim
startSheetNum
As
Integer
Set
wbook
=
Workbooks.
Open
(
ThisWorkbook.Path
&
"\猫超跨越台账.xlsm"
)
For
startSheetNum
=
1
To
wbook.Sheets.Count
If
wbook.Sheets
(
startSheetNum
)
.
Name
<>
"明细表"
And
wbook.Sheets
(
startSheetNum
)
.
Name
<>
"模板"
Then
MsgBox
(
wbook.Sheets
(
startSheetNum
)
.
Name
)
wbook.Sheets
(
startSheetNum
)
.Activate
ActiveSheet.ExportAsFixedFormat
Type
:
=
xlTypePDF
,
Filename
:
=
ActiveWorkbook.Path
&
"\\"
&
ActiveSheet.
Name
&
"台账"
&
".pdf"
,
Quality
:
=
xlQualityStandard
,
_
IncludeDocProperties
:
=
True
,
IgnorePrintAreas
:
=
False
,
OpenAfterPublish
:
=
False
End
If
Next
startSheetNum
Application.ScreenUpdating
=
True
Application.DisplayAlerts
=
True
End
Sub
使用
VBA
打印
工作表和工作簿
文件
都很容易
实现
,但是有时需要使用
VBA
打印
已经保存在本机的其他
文件
,例如
PDF
文件
格式的账单,如果这个
PDF
并非由
Excel
生成的那么就无法使用前述方法
实现
。
调用Windows的Shell命令可以
实现
打印
PDF
文件
。
代码可以做成wsf
文件
,通过C语言或者java调用
<job id="etop">
<reference guid="{00020813-0000-0000-C000-000000000046}" comment="MS
Excel
2000 tag library, under HKEY_CLASSES_ROOT\TypeLib\"/>
<script language="VBScript">
Option Explicit
Sub 保存工作簿()
ThisWorkbook.Save '.save相当于按保存按钮;无参数
ThisWorkbook.SaveAs "另存为工作簿" '把当前工作簿另存为一份新的工作簿
ThisWorkbook.SaveCopyAs "另存一份副本" '另存一份副本为新工作簿,而不关闭当前工作簿。只有一个参数,就是新的
文件
名。
VBA
是Visual Basic for Applications的缩写,用于微软Office项目的编程语言。
VBA
开发人员可以编写
VBA
代码来自动完成复杂任务,可以大大提高工作效率。在日常工作中,我们常常需要将
Excel
文件
转换为
PDF
格式,以便在不同平台上共享和传递。手动将每个
Excel
文件
转换为
PDF
格式是非常繁琐的,因此使用
VBA
将
Excel
文件
批量
转换为
PDF
格式是非常有用的。
使用
VBA
批量
转换
Excel
文件
为
PDF
的主要步骤如下:
1.打开需要转换的
Excel
文件
所在的目录。
2.遍历目录中的每个
Excel
文件
,使用
VBA
代码将其转换为
PDF
格式。
3.保存转换后的
PDF
文件
。
在这个过程中,需要使用
VBA
的
文件
操作和
打印
功能。
文件
操作需要使用FileSystemObject或Dir函数。
打印
功能可以使用PrintOut方法或
Pdf
Creator等第三方库。
以下是一个简单的
VBA
代码示例,演示如何
批量
将
Excel
文件
转换为
PDF
。代码中假设所有的
Excel
文件
都保存在同一个
文件
夹中。
Sub ConvertTo
PDF
()
Dim myPath As String
Dim myFile As String
Dim Wb As Workbook
'指定
文件
夹的路径
myPath = "C:\Users\MyFolder\"
'获取
文件
夹中的第一个
文件
名
myFile = Dir(myPath & "*.xlsx")
'遍历所有
文件
Do While myFile <> ""
'打开工作簿
Set Wb = Workbooks.Open(myPath & myFile)
'将工作簿另存为
PDF
文件
Wb.ExportAsFixedFormat Type:=xlType
PDF
, Filename:= _
myPath & Replace(myFile, ".xlsx", ".
pdf
"), Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'关闭工作簿
Wb.Close SaveChanges:=False
'获取
文件
夹中的下一个
文件
名
myFile = Dir
End Sub
这个
VBA
代码示例非常简单,只是将
Excel
文件
转换为
PDF
格式并保存在同一个
文件
夹中。但是,根据具体需求,可以进一步优化代码以满足不同的转换需求。