Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何创建指向本地存储文件的超链接列表?_Excel_Excel 2010_Vba - Fatal编程技术网

Excel 如何创建指向本地存储文件的超链接列表?

Excel 如何创建指向本地存储文件的超链接列表?,excel,excel-2010,vba,Excel,Excel 2010,Vba,我正在尝试自动创建指向图片文件的超链接列表。我的工作表的文件名列在A列,我希望这些文件(保存在工作表的父文件夹中)的超链接列在B列。我是VBA的初学者,但虽然这应该是相当简单的,但我找不到一种方法来做到这一点 我尝试使用宏录制器,得到以下结果: Sub Hyperlink() ' ' Hyperlink Macro ' ' Keyboard Shortcut: Ctrl+l ' ActiveCell.Offset(0, -1).Range("Table1[[#Headers],[

我正在尝试自动创建指向图片文件的超链接列表。我的工作表的文件名列在A列,我希望这些文件(保存在工作表的父文件夹中)的超链接列在B列。我是VBA的初学者,但虽然这应该是相当简单的,但我找不到一种方法来做到这一点

我尝试使用宏录制器,得到以下结果:

    Sub Hyperlink()
'
' Hyperlink Macro
'
' Keyboard Shortcut: Ctrl+l
'
    ActiveCell.Offset(0, -1).Range("Table1[[#Headers],[ACTIVITY '#]]").Select
    ActiveCell.FormulaR1C1 = "file(a)"
    ActiveCell.Offset(0, 1).Range("Table1[[#Headers],[ACTIVITY '#]]").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
        "..\file(a).JPG", TextToDisplay:="..\file(a).JPG"
    ActiveCell.Offset(1, 0).Range("Table1[[#Headers],[ACTIVITY '#]]").Select
End Sub

任何帮助都将不胜感激。干杯。

您可以在单元格中循环并创建超链接,只需引用保存数据的列即可

Sub CreateJpgHyperLinks()
Dim iRow, iCol As Integer 'row and column counters

iRow = 1 'change to 2 if there are headers
iCol = 1 'Column A
    'this assumes there is data in all cells in column A
    Do While ActiveSheet.Cells(iRow, iCol).Value <> ""
        'set the link in column B and point it to the info in column A
        ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Cells(iRow, iCol + 1), Address:=ActiveSheet.Cells(iRow, iCol).Value, _
        TextToDisplay:=ActiveSheet.Cells(iRow, iCol).Value
        'move to the next row
        iRow = iRow + 1
    Loop

End Sub

非常感谢。我来试一试,刚试过这个方法。有两件事我想说。1) 我想在超链接和显示名称中添加“.JPG”。2) 超链接需要链接到树中上面的文件夹(例如\\photos\photo spreadsheet\spreadsheet.xls==>照片超链接),我希望这是清楚的。再次感谢你的帮助。非常感谢。您是否尝试自己添加这些功能?我可以帮你,但你什么也学不到。试试看,如果你遇到问题,就把你的东西发回来。到目前为止,我已经知道如何将“.jpg”添加到显示名称中。我仍在试图找出如何引用包含图片的不同文件夹。我似乎找不到这个信息。我浏览了许多在线教程以及MS Office Development Center在线资源。找不到我正在查找的内容。@user2309060我已更新了答案,以向您展示如何获取工作簿的路径,然后获取工作簿上方的文件夹。如往常一样,如果它解决了你的问题,不要忘记标记为已回答。
'get path to current workbook
workbookPath = ActiveWorkbook.Path
'find the last slash in the workbook path
iLastFolderSlash = InStrRev(workbookPath, "\")
'create the folder location by removing the last folder from the path
jpgFolderPath = Left(workbookPath, iLastFolderSlash)