↑ 收起筛选 ↑
vBA打开并打印pDF文件
2020-10-17

Public Sub PPDone() keybd_event vbKeyControl, MapVirtualKey(vbKeyControl, 0), 0, 0 '模拟Ctrl按下 keybd_event vbKeyV, MapVirtualKey(vbKeyP, 0), 0, 0 '模拟P按下 keybd_event vbKeyV, MapVirtualKey(vbKeyP, 0), KEYEVENTF_KEYUP, 0 '模

一般来说Vba都需要依托于某软件的运行环境.比如调用word的功能需要打开word运行word里的Vba.但你用shell打开pdf,并且adobe也没有Vba.非要这么干,建议你用Vba来调用 WindowsAPI.如果不熟悉WindowsAPI,看点例子就知道怎么回事了.

dim i as range'是设置超联的单元格 dim h as string'是设置超联的单元格显示的内容 activesheet.hyperlinks.add anchor:=selection, address:="", _subaddress:=i, texttodisplay:=h

Sub VBA打开PDF文件_雨() CreateObject("Wscript.Shell").Run ("pdf文件路径+名称") ' 如:CreateObject("Wscript.Shell").Run ("F:\pdf\ABC.pdf") End Sub

最后加上 xlbook.close set xlbook=nothing set xlapp =nothing 创建并打开的文件没有关闭,文件在第一次打开的时候会被锁定,以后再打开的时候只能以只读的方式打开.你可以打开任务管理器,在进程里面你会发现不止一个的excel.exe的进程,就是你打开的excel,只是你看不到.在程序中加上xlapp.visible=true就可以像普通方式打开excel一样,是可见的.选定一个表格,使用sheet1.cells=123 就可以操作表格中的数据,里面的很多东西要自己摸索一下.

打印文本文件.PRINT [/D:device] [[drive:][path]filename[]] /D:device 指定打印机设备.使用VB语句调用.

打开vba,双击左侧thisworkbook,在弹出的窗口中输入以下内容:'代码开始private sub workbook_beforeclose(cancel as boolean) dim savepath as string savepath = "name" & date & time() & ".pdf" savepath = replace(savepath, "/", "")

Public Class Print'建立一个button控件,click事件 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click PrintDocument1.Print() '打印PrintDocument1控件 End Sub Private Sub PrintDocument1_PrintPage(

要学会变通!解决方案有2:改用Excel2010,直接VBA中另存为PDF格式.不知道您使用的PDF打印机是哪种?以我用的PDFCreator为例,设置PDFCreator自动打印,并用当前时间为打印的文档自动取名字.这样自动打印的文档名字起码是按照时间排序的.即便是随机取的名字,前后打印出来的PDF本身的文件生成时间也不一样,还是可以在资源管理器中用文件的生成时间进行排序.在资源管理器中选择这189个文件,然后按F2重命名第一个文件为test,按回车后所有的文件都会自动加上编号.当然这种命名的方式灵活性不够.要灵活地批量重命名文件,推荐使用“灵者更名”这款软件,想怎么改就怎么改.

生成pdf不用vba,excel本身就自带有这个功能,“另存为”pdf格式,可以通过弹出的保存框中“选项”设置转换属性.

延伸阅读: