Excel 使用vba预填充PDf
我在网上找到了一个用于填充pdf的代码,我不熟悉vba,因此不知道如何修复它,但通过尝试和错误,我能够填充pdf并靠近“保存”菜单,但现在在填充名称时,我遇到了一个问题,只有第一行数据被保存为默认名称,而下一行数据创建了一个错误,提示您是否要替换上一个文件,因此我不确定如何修复该文件并将其单独命名(唯一)。同样,我对vba知之甚少。PFA代码和屏幕截图Excel 使用vba预填充PDf,excel,vba,pdf,automation,autofill,Excel,Vba,Pdf,Automation,Autofill,我在网上找到了一个用于填充pdf的代码,我不熟悉vba,因此不知道如何修复它,但通过尝试和错误,我能够填充pdf并靠近“保存”菜单,但现在在填充名称时,我遇到了一个问题,只有第一行数据被保存为默认名称,而下一行数据创建了一个错误,提示您是否要替换上一个文件,因此我不确定如何修复该文件并将其单独命名(唯一)。同样,我对vba知之甚少。PFA代码和屏幕截图 Option Explicit Sub PDFTemplate() Dim PDFFldr As FileDialog Set PDFFl
Option Explicit
Sub PDFTemplate()
Dim PDFFldr As FileDialog
Set PDFFldr = Application.FileDialog(msoFileDialogFilePicker)
With PDFFldr
.Title = "Select PDF file to attach"
.Filters.Add "PDF Type Files", "*.pdf", 1
If .Show <> -1 Then GoTo NoSelection
Sheet1.Range("B1").Value = .SelectedItems(1)
End With
NoSelection:
End Sub
Sub SavePDFFolder()
Dim PDFFldr As FileDialog
Set PDFFldr = Application.FileDialog(msoFileDialogFolderPicker)
With PDFFldr
.Title = "Select a Folder"
If .Show <> -1 Then GoTo NoSel:
Sheet1.Range("B2").Value = .SelectedItems(1)
End With
NoSel:
End Sub
Sub CreatePDFForms()
Dim PDFTemplateFile, NewPDFName, SavePDFFolder, EIN1, EIN2, Name As String
'Dim ApptDate As Date
Dim CustRow, LastRow As Long
With Sheet1
If .Range("B1").Value = Empty Or .Range("B2").Value = Empty Then
MsgBox "Both PDF Template and Saved PDF Locations are required for macro to run"
Exit Sub
End If
LastRow = .Range("D9999").End(xlUp).Row 'Last Row
PDFTemplateFile = .Range("B1").Value 'Template File Name
SavePDFFolder = .Range("B2").Value 'Save PDF Folder
ThisWorkbook.FollowHyperlink PDFTemplateFile
Application.Wait Now + 0.00009
For CustRow = 7 To LastRow
Name = .Range("F" & CustRow).Value ' Name
EIN1 = .Range("D" & CustRow).Value ' EIN1
Application.SendKeys "{Tab}", True
Application.SendKeys EIN1, True
Application.Wait Now + 0.00002
Application.SendKeys "{Tab}", True
Application.SendKeys .Range("E" & CustRow).Value, True 'EIN2
Application.Wait Now + 0.00002
Application.SendKeys "{Tab}", True
Application.SendKeys .Range("F" & CustRow).Value, True 'Name
Application.Wait Now + 0.00002
'Application.SendKeys "{Tab}", True
Application.SendKeys "^+(s)", True
Application.Wait Now + 0.00003
If CustRow = 7 Then
Application.SendKeys "{Tab}", True
End If
Application.SendKeys "{Enter}", True
Application.Wait Now + 0.00003
'Application.SendKeys ("{BACKSPACE}")
'Application.Wait Now + 0.00001
'Application.SendKeys "%(n)", True
'Application.Wait Now + 0.00001
'If Dir(SavePDFFolder & "\" & CustRow & ".pdf") <> Empty Then Kill (SavePDFFolder & "\" & CustRow & ".pdf")
Application.SendKeys ("{BACKSPACE}")
Application.Wait Now + 0.00002
'Application.SendKeys "%(n)", True
'Application.Wait Now + 0.00002
'Application.SendKeys "CustRow" & ".pdf"
Application.SendKeys SavePDFFolder & "\" & CustRow & ".pdf"
Application.Wait Now + 0.00005
Application.SendKeys "%(s)", True
Application.Wait Now + 0.00002
'Name = .Range("F" & CustRow).Value ' Name
'If Dir(SavePDFFolder & "\" & Name & "_" & ".pdf") <> Empty Then Kill (SavePDFFolder & "\" & Name & "_" & ".pdf")
'Application.SendKeys "{Enter}", True
'Application.SendKeys "%(n)", True
'Application.Wait Now + 0.00002
'Application.SendKeys SavePDFFolder & "\" & Name & "_" & ".pdf"
'Application.Wait Now + 0.00002
'Application.SendKeys "%(s)", True
'Application.Wait Now + 0.00002
Next CustRow
Application.SendKeys "^(q)", True
Application.SendKeys "{numlock}%s", True
End With
End Sub
选项显式
子PDFTemplate()
Dim PDFFldr As文件对话框
Set PDFFldr=Application.FileDialog(msoFileDialogFilePicker)
使用PDFFldr
.Title=“选择要附加的PDF文件”
.Filters.Add“PDF类型文件”,“*.PDF”,1
如果.Show-1,则转到NoSelection
表1.范围(“B1”)。值=。选择编辑项(1)
以
选择:
端接头
子SavePDFFolder()
Dim PDFFldr As文件对话框
Set PDFFldr=Application.FileDialog(msoFileDialogFolderPicker)
使用PDFFldr
.Title=“选择一个文件夹”
如果.Show-1,则转到NoSel:
表1.范围(“B2”)。值=。选择编辑项(1)
以
鼻子:
端接头
子CreatePdforms()
Dim PDFTemplateFile、NewPDFName、SavePDF文件夹、EIN1、EIN2、名称为字符串
'Dim ApptDate As Date
第二排,最后一排一样长
附页1
如果.Range(“B1”).Value=空或.Range(“B2”).Value=空,则
MsgBox“运行宏需要PDF模板和保存的PDF位置”
出口接头
如果结束
LastRow=.Range(“D9999”).End(xlUp).Row'最后一行
PDFTemplateFile=.Range(“B1”).Value“模板文件名”
SavePdfolder=.Range(“B2”).Value“保存PDF文件夹”
ThisWorkbook.FollowHyperlink PDFTemplate文件
应用程序。现在等待+0.00009
对于CustRow=7到LastRow
Name=.Range(“F”&CustRow).Value'Name
EIN1=.Range(“D”和CustRow).值“EIN1”
Application.SendKeys“{Tab}”,True
Application.SendKeys EIN1,True
应用程序。现在等待+0.00002
Application.SendKeys“{Tab}”,True
Application.SendKeys.Range(“E”和CustRow).Value,True'EIN2
应用程序。现在等待+0.00002
Application.SendKeys“{Tab}”,True
Application.SendKeys.Range(“F”&CustRow).值,True'名称
应用程序。现在等待+0.00002
'Application.SendKeys“{Tab}”,True
Application.SendKeys“^+(s)”,True
应用程序。现在等待+0.00003
如果CustRow=7,则
Application.SendKeys“{Tab}”,True
如果结束
Application.SendKeys“{Enter}”,True
应用程序。现在等待+0.00003
'Application.SendKeys(“{BACKSPACE}”)
'Application.Wait Now+0.00001
'Application.SendKeys“%(n)”,True
'Application.Wait Now+0.00001
'If Dir(SavePDFFolder&“\”&CustRow&“.pdf”)为空,则Kill(SavePDFFolder&“\”&CustRow&“.pdf”)
Application.SendKeys(“{BACKSPACE}”)
应用程序。现在等待+0.00002
'Application.SendKeys“%(n)”,True
'Application.Wait Now+0.00002
'Application.SendKeys“CustRow”和“.pdf”
Application.SendKeys savePdfolder&“\”&CustRow&“.pdf”
应用程序。现在等待+0.00005
Application.SendKeys“%(s)”,True
应用程序。现在等待+0.00002
'Name=.Range(“F”&CustRow).Value'Name
'如果Dir(SavePDFFolder&“\”&Name&“\”&“.pdf”)为空,则Kill(SavePDFFolder&“\”&Name&“\”&“.pdf”)
'Application.SendKeys“{Enter}”,True
'Application.SendKeys“%(n)”,True
'Application.Wait Now+0.00002
'Application.SendKeys savePdfolder&“\”Name&“\”和“.pdf”
'Application.Wait Now+0.00002
“Application.SendKeys”%(s)”,True
'Application.Wait Now+0.00002
下一个卡斯特罗
Application.SendKeys“^(q)”,True
Application.SendKeys“{numlock}%s”,True
以
端接头