Можете ли вы создать PDF-файл и указать целевой путь, как показано ниже?

#excel #vba

Вопрос:

Итак, я пытаюсь создать PDF-файл и поместить его в папку a, названную в честь ячейки E10, в которой находится папка B18. Я получаю «Блок ошибок компиляции, если без конца, если». Я попробовал оба оператора end и exit, но безуспешно.

 Function Dispatch_PDF() As Boolean  ' Copies sheets into new PDF file for e-mailing
 
    Dim Thissheet As String, ThisFile As String, PathName As String
    Dim SvAs As String
    Dim Tmp         As String
    Dim FldName     As String
    
    ' 1. Create the name you want to search for before starting the search
    ' 2. don't refer to cells by their range names (too cumbersome)
    FldName = Cells(10, 5).Value                          ' actually, it's Cells(10, 5)
    Debug.Print FldName                                     ' check the name
    If Len(FldName) Then
        Tmp = Cells(18, 2).Value
        If Len(Tmp) Then
            FldName = Tmp amp; "" amp; FldName                   ' observe how to add the path separator
            Debug.Print FldName                             ' check the name
            FldName = ActiveWorkbook.path amp; "DISPATCHED WORK ORDERS" amp; FldName
            Debug.Print FldName
    
    Application.ScreenUpdating = False
 
' Get File Save Name
        Thissheet = ActiveSheet.Name
        ThisFile = ActiveWorkbook.Name
        PathName = ActiveWorkbook.path
        SvAs = PathName amp; "DISPATCHED WORK ORDERS" amp; FldName amp; Range("E10").Value amp; ".pdf"
 
'Set Print Quality
        On Error Resume Next
        ActiveSheet.PageSetup.PrintQuality = 600
        Err.Clear
        On Error GoTo 0
 
' Instruct user how to send
        On Error GoTo RefLibError
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SvAs, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
        On Error GoTo 0
    
SaveOnly:
        MsgBox "A copy of this sheet has been successfully saved as a  .pdf  file: " amp; Chr(13) amp; Chr(13) amp; SvAs amp; _
        "Review the .pdf document. If the document does NOT look good, adjust your printing parameters, and try again."
        
    Dispatch_PDF = True
    GoTo EndMacro
    
RefLibError:
    MsgBox "Unable to save as PDF. Reference library not found."
    Dispatch_PDF = False
EndMacro:
    
End Function
 

Есть Какие-Нибудь Предложения?

Комментарии:

1. Тебе не хватает обоих End If терминаторов.

2. Я уже пробовал это. и когда я добавляю конец «если», я получаю ссылку на библиотеку, которая не найдена.

3. В вашем коде нет ничего, что на самом деле проверяет наличие ссылки на библиотеку. Поэтому либо удалите эту строку кода, либо измените ее, чтобы она отражала то, что вы на самом деле проверяете, — значения в E10 и B18 .

4. Полностью устраните ошибку, и тогда вы получите более актуальную информацию. Он остановится на линии, которая выдает вам проблему, и выдаст вам собственные сообщения об ошибках, оба из которых будут ценной информацией.