【问题标题】:Excel Button to add file LinkExcel 按钮添加文件链接
【发布时间】:2018-01-31 00:17:37
【问题描述】:

我们在整理办公室方面遇到了一些问题,所以我想出了一个电子表格来为我们做很多事情,但我想添加添加“文件链接”的功能,基本上我想要创建按钮时,单击时会提示您找到所需的文件,然后继续将所选文件的链接附加到按钮本身旁边的单元格上。

我找到了一种方法来处理 excel 文件,这意味着将另一个 Excel 文件附加到 Excel 文件,但是我们需要附加 PDF 文件,我们需要一个按钮的原因是我们有太多的 PDF 文件无法手动逐个添加超链接。

到目前为止,我发现这个脚本似乎只能附加其他 EXCEL 文件。

Public Sub insertFile()

'Select the cell in which you want to place the attachment
Range("D3").Select

'Get file path
fpath = Application.GetOpenFilename("All Files,*.*", Title:="Select file")
If LCase(fpath) = "false" Then Exit Sub

'Insert file
ActiveSheet.OLEObjects.Add _
Filename:=fpath, _
Link:=False, _
DisplayAsIcon:=True, _
IconFileName:="excel.exe", _
IconIndex:=0, _
IconLabel:=extractFileName(fpath)

End Sub


Public Function extractFileName(filePath)

For i = Len(filePath) To 1 Step -1
    If Mid(filePath, i, 1) = "\" Then
    extractFileName = Mid(filePath, i + 1, Len(filePath) - i + 1)
    Exit Function
    End If
Next

End Function

我明白了

运行时错误“1004”无法插入对象

当我尝试将其更改为 PDF 文件时。

【问题讨论】:

  • 所以你基本上有三个任务。 1) 收集 PDF 文件列表。 2) 遍历该列表,以及 3) 通过代码将该 PDF 的超链接添加到您的工作表。因此,从任务 1 开始,对收集该列表进行一些研究。当你解决了这个问题,然后继续任务 2,解决它,然后继续任务 3。一旦你完成了,你就完成了工作。祝你好运。
  • 好的,你已经找到了一个脚本 - 现在你需要修改它。你试过什么?
  • 即使它不能正常工作,它会附加 excel 文件,然后当我尝试打开它时,它会打开一个空的 excel 文件,然后关闭主文件,它的行为很奇怪,如果我尝试添加PDF文件或任何其他文件,它没有添加它,它说“运行时错误'1004'无法插入对象”
  • 好的,这可能也应该添加到您的问题中,除了所涉及的变量的值之外,还包括您在哪一行得到错误。

标签: excel vba pdf button


【解决方案1】:

这就是我用来让用户选择 pdf 以进行超链接的方法:

Sub CreateHyperlink()
Dim wks As Worksheet
Dim LinksList As Range

Set wks = ActiveSheet 
Set LinksList = Range("A1").End(xlDown).Offset(1, 0) 'first empty cell after list
    ChDrive "C:\"
    ChDir "C:\Users\User\Folder1\"
    Filt = "PDF Files (*.pdf),*.pdf ," & _
           "All Files (*.*),*.*"
    FilterIndex = 1
    Title = "Select a File to Hyperlink"
    Filename = Application.GetOpenFilename _
        (FileFilter:=Filt, _
         FilterIndex:=FilterIndex, _
         Title:=Title)

    If Filename <> False Then
       wks.Hyperlinks.Add Anchor:=LinksList, _
       Address:=Filename, _
        TextToDisplay:=Filename
    Else
        MsgBox "No file was selected.", vbCritical, "Loading Error"
        Exit Sub
    End If
End Sub

我很可能只是将此宏附加到按钮...您也可以让用户命名超链接,或者让他们在右侧或左侧的单元格中添加注释。 GL!~ :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多