【问题标题】:Using VBA to save excel file and hyperlink the saved file使用VBA保存excel文件并超链接保存的文件
【发布时间】:2020-04-08 06:35:46
【问题描述】:

只是想问是否可以使用 VBA 将文件保存在 excel 中,然后生成该文件路径的超链接以粘贴到不同的工作表上?

例如,我有一个工作簿,其中包含两个工作表,表单和日志。在表单工作表中,有一个包含文档编号的单元格。当我运行我的 VBA 代码时,它会将文档编号复制到日志工作表中。

Private Sub CommandButton1_Click()

 Application.ScreenUpdating = False
 Dim copySheet As Worksheet
 Dim pasteSheet As Worksheet

 Set copySheet = Worksheets("Form")
 Set pasteSheet = Worksheets("Logs")

 copySheet.Range("I3").Copy
 pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
 copySheet.ExportAsFixedFormat Type:=xlTypePDF, _
 Filename:="C:\Users\username\Documents\Saved PDF.pdf"

End sub

它还将表单工作表导出为 pdf 文件。但是,我希望将保存的 pdf 的超链接放入日志工作表中。假设文档编号在 A 列中,我希望超链接在 B 列中与文档编号在同一行中。

【问题讨论】:

  • 看到这个documentation
  • 请注意,由于这不是免费的代码编写服务,因此您有必要展示您迄今为止尝试过的内容以及您遇到的问题或错误(通过展示您的代码)或至少展示你所研究的和你所做的努力。否则,它只是要求我们为您完成所有工作。阅读How to Ask 可能会帮助您改进您的问题。

标签: excel vba


【解决方案1】:

试试这个..

Sub log()
    Application.ScreenUpdating = False

    Dim wb As Workbook, srcSh As Worksheet, dstSh As Worksheet
    Dim src As Range, dst As Range, pth$, docNm$

    Set wb = ThisWorkbook
    Set srcSh = wb.Worksheets("Form")
    Set src = srcSh.[I3]
    Set dstSh = wb.Worksheets("Logs")
    Set dst = dstSh.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 2)

    docNm = "Log" & " - " & src
    pth = Environ("userprofile") & "\Documents\" & docNm & ".pdf"

    srcSh.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pth

    dst(1) = src: dstSh.Hyperlinks.Add dst(2), pth, , "Open PDF", "Log"

    Application.ScreenUpdating = True
End Sub

【讨论】:

  • 嗨,调试显示错误 424,需要对象吗?是否与 dst(1) 或 (2) 有关?
  • @HMProduction 在Hyperlinks.Add 之前缺少工作表参考 ..希望它现在可以工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 2018-06-02
  • 1970-01-01
  • 1970-01-01
  • 2016-01-31
相关资源
最近更新 更多