如何用excel通过vba实现打开指定单元格的超链接。通过查找到A列数据后,自动打开c列的超链接

如题所述

Sub 查找()
Dim FindString As String, FindRange As Range
FindString = InputBox("请输入查找字符串:", "查找")
If FindString = "" Then Exit Sub
Set FindRange = Cells.Find(What:=FindString, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, MatchByte:=False, SearchFormat:=False)
If Not FindRange Is Nothing And FindRange.Value <> FindString Then
Do
Set FindRange = Cells.FindNext(FindRange)
Loop While FindRange.Value <> FindString
End If
FindRange.Activate
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End Sub
思路:先用InputBox输入查找值,找到完全匹配的单元格后,通过激活超链接,自动打开链接的文档。
打开文档时系统会提示你注意链接数据源的安全,忽略就是。追问

把代码复制运行,
提示运行时错误"9" 下表跨界。
需要哪里修改
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True(黄色填充)

刚试了一下,可以。是直接打开了查找数据a的超链接
我想搜索到a数据 打开c列的超链接 可以实现

追答

哦,那你懂修改就好了。我的程序仅供参考。
这样修改就好了:
Sub 查找()
Dim FindString As String, FindRange As Range
FindString = InputBox("请输入查找字符串:", "查找")
If FindString = "" Then Exit Sub
Set FindRange = Columns("A:A").Find(FindString, LookIn:=xlValues)
If Not FindRange Is Nothing And FindRange.Value FindString Then
Do
Set FindRange = Columns("A:A").FindNext(FindRange)
Loop While FindRange.Value FindString
End If
FindRange.Offset(0, 2).Activate
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-22
C列数据的超链接是已经做好的不?追问

做好的超链接!链接是图片或者pdf文档的。
不需要通过手动方式点击打开
想在搜索到a数据的时候,自动实现c列数据打开超链接

相似回答