【问题标题】:Save as pdf destination issues另存为 pdf 目标问题
【发布时间】:2016-11-04 03:38:39
【问题描述】:

我正在从循环函数保存到 pdf 导出。我已将文件名设置为:

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:=FILE_NAME,   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

目标是使用我建立的命名约定导出到特定文件夹。如果您需要整个宏,请告诉我。

【问题讨论】:

  • filename:=FILE_NAME??
  • 当我这样做时,它不会保存在任何地方。我需要将目标文件夹放在 FIle_Name 中吗??
  • 是的,但是你已经有了ActiveWorkbook.Path 然后你又连接了很多东西......确保每个项目都是正确的。
  • 串联是有效的,我在一个月前就有了这个工作,并且已经被编辑过。显然是 vba 的新手:P 请查看代码更改,任何建议都会很棒
  • 你做了Destsh.Range("K27")为什么不在这里CurOPRID = Range("A" & CStr(sourceRow))

标签: excel vba pdf save-as


【解决方案1】:

为了教鱼而不是分发鱼......

  1. 将 option 显式放在最顶部(甚至在您的第一个 sub 之前)。
  2. 打开本地窗口(在 VBE 中查看)。使用 F8 单步执行您的代码,在本地窗口中观察您的变量,以确保它们与您在脚本中的该步骤中所期望的一样。
  3. 选项显式将识别您尚未识别的大量变量 宣布。 (“变量未定义”)
  4. 修复这些问题以及出现的任何其他问题。 (当它转到其他潜艇时,它也会识别那里的变量问题。)
  5. 您的问题可能会消失,只需修复显式标识的选项和/或每次按 F8 时单步执行代码并查看本地窗口时可能会变得很明显。
  6. 如果您仍然卡住,请使用更新后的代码编辑您的帖子,并解释任何错误消息和发生错误的行。如果没有错误,请说明预期和实​​际行为。

【讨论】:

    【解决方案2】:

    上面的代码完美运行,我正在处理的文件是保存在 temp 文件夹中的同名副本,因此所有文件都保存到活动工作簿路径中……这不在我正在监视的文件夹中.我现在有大约 30000 个 pdf,因为我运行了这么多次宏,哈哈!感谢所有试图提供帮助的人。

    【讨论】:

      猜你喜欢
      • 2013-03-27
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      相关资源
      最近更新 更多