2016-07-01 5 views
-1

Я работаю над сохранением в pdf-экспорте из функции цикла. Я поставил имя_файл как:Сохранить как 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 

Цель состоит в том, чтобы экспортировать в отдельную папку с именованием Я поставил. Если вам нужен весь макрос, пожалуйста, дайте мне знать.

+0

'имя_файла: = FILE_NAME' ?? – findwindow

+0

Когда я это делаю, он нигде не спасает. Нужно ли поместить целевую папку в FIle_Name? – TylerH

+0

Да, но у вас уже есть «ActiveWorkbook.Path», а затем вы объединяете много вещей ... убедитесь, что каждый элемент верен. – findwindow

ответ

0

В интересах обучения рыбачить против раздачи рыбы ... вариант

  1. Put явного на самом верху (даже до первого суба).
  2. Откройте окно для местных жителей (смотрите в VBE). Пройдите через свой код с F8, наблюдая за вашими переменными в окне locals, чтобы убедиться, что они - то, что вы ожидаете от них на этом этапе вашего скрипта.
  3. Опция явным образом определит числовые переменные, которые вы не указали . («Переменная не определена»)
  4. Исправить те и другие проблемы, которые возникают. (Когда он идет на другие подсистемы, там также будут проблемы с идентификаторами.)
  5. Ваша проблема может исчезнуть, просто исправив, какая опция явно идентифицирует и/или она может стать очевидной, перешагнув ваш код и просмотрев окно местных жителей каждый раз, когда вы нажмите F8.
  6. Если вы все еще застряли, отредактируйте свой пост с помощью обновленного кода и объясните все сообщения об ошибках и строку, в которой он находится. Если нет ошибки, объясните ожидаемое и фактическое поведение.
+1

спасибо rodger! Я понял. – TylerH

0

Вышеупомянутый код работает отлично, файл, в котором я работал, был копией с идентичным именем, сохраненным в папке temp, поэтому все файлы сохранялись в пути активной рабочей книги. Который не был в папке Я наблюдал. У меня сейчас около 30000 pdf-файлов, из-за запуска макроса столько раз, LOL! Спасибо всем, кто пытался помочь.

Смежные вопросы