экспортируйте в формате PDf, а затем создайте гиперссылку на этот PDF

#excel #vba

Вопрос:

Я пытаюсь обновить лист, экспортировать его в PDF-файл и поместить гиперссылку на этот PDF-файл. Проблема в том, что гиперссылка не работает. Я не могу найти руководство о том, как сделать гиперссылку на местоположение и имя, чтобы они были переменными, а не фиксированными значениями.

Я пробовал .имя и .значение. Также просто оставляю его в strPathFIle. Но всегда получаю ошибку в адресе.

 Sub PDFActiveSheet()
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myfile As Variant


Set wbA = ActiveWorkbook
Set wsA = ActiveSheet


'get active workbook folder, if saved
strPath = Worksheets("Control Sheet").Cells(1, 1).Value amp; "Sheets"
If Right(strPath, 1) <> "" Then strPath = strPath amp; ""


'replace spaces and periods in sheet name
strName = Replace(wsA.Name, " ", "_")
strName = Replace(strName, ".", "_")


'create default name for savng file
strFile = strName amp; ".pdf"
strPathFile = strPath amp; strFile



'export to PDF if a folder was selected
If myfile <> "False" Then
    wsA.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=strPathFile, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
End If


Worksheets("Main Page").Activate

Dim Departments As Range
Dim dep As Range
Set Departments = Worksheets("Main Page").Range("a5:a7") 'make this much larger for final

For Each dep In Departments
        MsgBox wsA.Name amp; " amp; " amp; dep.Value
        If dep.Value = wsA.Name Then
            
        With Worksheets(1)
            .Hyperlinks.Add Anchor:=dep.Value, _
             Address:=strPathFile.Value, _
             ScreenTip:=wsA.Name, _
            TextToDisplay:=wsA.Name
        End With
            
            GoTo depgame
        End If
Next dep
MsgBox "this didnt work"
depgame:
 

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

1. strPathFile является строкой, у нее нет .value свойства, не уверен, что это ваша проблема

2. Также Anchor требуется диапазон или форма, dep.value это строка.