这个脚本可能看起来很熟悉,因为我从 Superuser(或 Stackoverflow)获取了此副本并根据自己的需要进行了更改。该脚本会移动 Outlook 项目,将附件复制到文件夹,然后打印所有附件。它非常有用,因为我的用户通常每天打印数百个附件,它可以节省大量时间。
我遇到的一个问题是 Filenameincrementer。它一直按以下方式重命名我的文件:
文件.pdf1 文件.pdf2 文件.pdf3 文件.pdf4
虽然我想要:
文件1.pdf 文件2.pdf 文件3.pdf 文件4.pdf
我该怎么做才能实现这个目标?
免责声明:第一次涉足 VB,所以要温柔一点。
Public Sub PrintPDFs()
Dim Inbox As MAPIFolder
Dim Item As MailItem
Dim Atmt As Attachment
Dim FileName As String
Dim i As Integer
Dim Filenameincrementer As Integer
Filenameincrementer = 1
Set Inbox = GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Parent.Folders.Item("MAIL_INCOMING")
For Each Item In Inbox.Items
For Each Atmt In Item.Attachments
FileName = "X:\Folder\" & Atmt.FileName & Filenameincrementer
Atmt.SaveAsFile FileName
Shell """C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe"" -p """ + FileName + """", vbHide
Filenameincrementer = Filenameincrementer + 1
Next
Item.Move GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Parent.Folders.Item("MAIL_PRINTED")
Next
Set Inbox = Nothing
End Sub
答案1
如果足够的话,您可以使用 hack 来实现这一点。由于.pdf
非常独特,我们可以搜索它,将其删除,然后将其添加到末尾。
FileName = "X:\Folder\" & Atmt.FileName & Filenameincrementer 'remains the same
FileName = Replace(FileName, ".pdf", "") & ".pdf" ' I'm a new line of code. Hurray
Atmt.SaveAsFile FileName 'remains the same
我无法测试它但它应该可以正常工作......