Excelbutton提示用户将文件附加到活动工作表?

在这里input代码我试图在Excel中创build一个button,提示用户input文件,然后在活动电子表格中将该文件作为超文本链接上传。

目标:file upload后,用户只需点击超链接即可查看文件。

我曾经尝试过,在Excel中创build一个ActiveX控件,但在单元格中将input表示为超链接输出是问题所在?

Private Sub CommandButton1_Click() Dim sFullName As String Application.FileDialog(msoFileDialogOpen).Show sFullName = Application.FileDialog(msoFileDialogOpen).SelectedItems(1) End Sub 

插入对PDF的参考

 Sub InsertObjectAsIcon() 'lets user browse for a file to insert into the 'current active worksheet. 'all are inserted as icons, not "visible" objects, so 'to view they will need an appropriate viewer/reader 'at the recipient end. ' 'This one shows how you could set up to use 'several different icons depending on the type of file 'inserted. You'll have to experiment by recording 'macros while inserting various file types to build 'up a list to use, just add new Case Is = statements 'do deal with the file types. Be sure to enter the 'file type in all UPPERCASE. ' Dim iconToUse As String Dim fullFileName As String Dim FNExtension As String fullFileName = Application.GetOpenFilename("*.*, All Files", , , , False) If fullFileName = "False" Then Exit Sub ' user cancelled End If 'choose an icon based on filename extension 'get all after last "." in filename FNExtension = Right(fullFileName, Len(fullFileName) - _ InStrRev(fullFileName, ".")) 'select icon based on filename extension Select Case UCase(FNExtension) Case Is = "TXT" iconToUse = "C:\Windows\system32\packager.dll" Case Is = "XLS", "XLSM", "XLSX" iconToUse = "C:\Windows\Installer\{91140000-0011-0000-0000-0000000FF1CE}\xlicons.exe" Case Is = "PDF" iconToUse = "C:\Windows\Installer\{AC76BA86-1033-F400-7761-000000000004}\_PDFFile.ico" Case Else 'this is a generic icon iconToUse = "C:\Windows\system32\packager.dll" End Select ActiveSheet.OLEObjects.Add(Filename:=fullFileName, Link:=False, DisplayAsIcon:=True, IconFileName:=iconToUse, IconIndex:=0, IconLabel:=fullFileName).Select End Sub Private Sub CommandButton1_Click() InsertObjectAsIcon End Sub 

此代码打开通用文件对话框,过滤显示.xslx文件。 它拾取文件的path,然后将其插入活动单元。 还有一个inputinputbox要求一个简短的文本名称,如果你不想看到完整的path。

 Sub FileToLink() Dim strFileName As String Dim strShortName As String strFileName = Application.GetOpenFilename("Excel Documents (*.xlsx), *.xlsx") If strFileName = "False" Then Exit Sub ' user cancelled End If strShortName = InputBox("What do you want to call this link?", "Short Text", strFileName) ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=strFileName, TextToDisplay:=strShortName End Sub 

您可以用strFileName = Application.GetOpenFilename("All Documents (*.*), *.*")来replace所有文件。 链接无关紧要,因为点击链接将调用与该文件types链接的应用程序。