【发布时间】:2016-06-06 20:28:30
【问题描述】:
解决了。
宏循环遍历表格并将值自动填充到目标工作表中,并自动在桌面上另存为 pdf,并为每一行指定文件名。它不会将它们保存到单个 pdf 中;但是,如果您有 adobe acrobat,它有一个简单的合并工具可以将它们组合在一起。
Sub AutoFill_export2pdf()
'
Dim rowCount As Integer
Dim CurBU As String
Dim CurOPRID As String
Dim CurName As String
Dim CurJournalID As String
Dim CurJournalDate As String
Dim FILE_NAME As String
Sheets("List").Select
rowCount = ActiveSheet.UsedRange.Rows.count
Set Destsh = ActiveWorkbook.Sheets("Sheet")
For sourceRow = 2 To rowCount
CurOPRID = Range("A" & CStr(sourceRow)) 'OPRID
CurName = Range("B" & CStr(sourceRow)) 'Name
CurBU = Range("C" & CStr(sourceRow)) 'BU
CurJournalID = Range("D" & CStr(sourceRow)) 'Journal ID
CurJournalDate = Range("E" & CStr(sourceRow)) 'Journal Date
FILE_NAME = ActiveWorkbook.Path & "\" & "OTGL_" & "JRNL_" & CurBU & "_" & CurJournalID & "_" & Format(CurJournalDate, "mm-dd-yyyy") & "_" & ".PDF"
CurName = "*" & CurName & "*"
CurBU = "*" & CurBU & "*"
CurJournalID = "*" & CurJournalID & "*"
CurJournalDate = "*" & CurJournalDate & "*"
Destsh.Range("K27") = CurName
Destsh.Range("D7") = CurBU
Destsh.Range("G7") = CurJournalID
Destsh.Range("I7") = CurJournalDate
On Error GoTo 0
Call SaveAsPDF(Destsh, FILE_NAME)
Sheets("List").Select
Next
End Sub
Public Sub SaveAsPDF(ByVal destSheet As Worksheet, ByVal PDFName As String)
On Error Resume Next
Kill PDFName
destSheet.Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:= _
PDFName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub
Sub Autofill()
'
Dim rowCount As Integer
Dim CurBU As String
Dim CurName As String
Dim CurOPRID As String
Dim CurJournalID As String
Dim CurJournalDate As String
Dim FILE_NAME As String
CurName = "*" & CurName & "*"
CurBU = "*" & CurBU & "*"
CurJournalID = "*" & CurJournalID & "*"
CurJournalDate = "*" & CurJournalDate & "*"
Sheets("List").Select
rowCount = ActiveSheet.UsedRange.Rows.count
Set Destsh = ActiveWorkbook.Sheets("Sheet")
For sourceRow = 2 To rowCount
CurOPRID = Range("A" & CStr(sourceRow)) 'OPRID
CurName = Range("B" & CStr(sourceRow)) 'Name
CurBU = Range("C" & CStr(sourceRow)) 'BU
CurJournalID = Range("D" & CStr(sourceRow)) 'Journal ID
CurJournalDate = Range("E" & CStr(sourceRow)) 'Journal Date
FILE_NAME = ActiveWorkbook.Path & "\" & "OTGL_" & "JRNL_" & CurBU & "_" & CurJournalID & "_" & Format(CurJournalDate, "mm-dd-yyyy") & "_" & ".PDF"
Destsh.Range("K27") = CurName
Destsh.Range("D7") = CurBU
Destsh.Range("G7") = CurJournalID
Destsh.Range("I7") = CurJournalDate
On Error GoTo 0
Call SaveAsPDF(Destsh, FILE_NAME)
Sheets("List").Select
Next
End Sub
End Sub
【问题讨论】:
-
saves the entire workbook in pdf-which is great but I only need sheet 1然后你做Set wb = ActiveWorkbook | wb.ExportAsFixedFormat Type:=xlTypePDFXD -
你能否详细说明那条线和我的线之间的区别……它们在我看来是一样的。
-
我写了
then you do,意思是我在说明你做了什么......所以没有区别。 -
我的意思是当你说你有
tried about thirty ways to Sunday时,我怀疑你的说法的真实性。我的猜测是你用谷歌搜索了这段代码,根本没有费心去研究它。编辑:在有人再次称我粗鲁之前大声笑XD然而,总是OP强迫我直言不讳-_- Edit2:我想我可以闭嘴XD -
我在当前脚本和其他脚本之前遇到过这个错误。我知道代码的含义,并且我已经完成了消除错误的过程。我在这里寻求帮助...这是一个论坛,人们在这里讨论想法并解决问题。如果该主题之前已触及,则有许多不同的解决方案使每个问题都独一无二 - 如果您可以在论坛中找到我的问题的答案,请链接它以便我继续前进。所以,是的,我已经完成了我的研究,但并没有带来什么好处。当人们只是在寻求帮助时,无需打电话给他们。