第8章 链接功能的使用
工作表中也可以使用网页中的“超级链接”功能,有助于不同程序及不同单元格间的跳转。本章讲述创建新链接及删除已有链接方面的运用。
● 实例61单元格链接
● 实例62工作表链接
● 实例63删除工作表中数据链接
● 实例64删除工作表自动添加的网址及mail地址链接
实例61 单元格链接
【技巧说明】 光标从一个单元格跳转至另一个单元格。
【案例介绍】 将光标定位于B4,需要单击单元格时跳转至单元格A1。
【案例实现】 参见以下步骤:
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
[3] 在右边代码窗口输入以下代码:
Sub链接至A1() Range("B4").Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress: ="Sheet1!A1", ScreenTip:="跳转至a1", TextToDisplay:="到a1" 'Anchor表示位置,SubAddress表示链接到的目标区域,TextToDisplay表示单元格 显示值,ScreenTip表示屏幕提示 End Sub
[4] 关闭VBE窗口返回到工作表。
[5] 将光标定位于任意单元格,用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,D4单元格将产生链接功能与链接提示,如图2.58所示。单击后光标定位于单元格A1,如图2.59所示。
图2.58 添加链接
图2.59 单击链接后跳转至A1
提示
本实例参见光盘样本:..\第2部分\实例61.xlsm
【相关知识说明】
Hyperlinks:代表工作表或区域的超链接的集合,利用Add方法可以向单元格添加链接。Hyperlinks的语法如下:
Hyperlinks.Add(Anchor, Address, SubAddress, ScreenTip, TextToDisplay)
Hyperlinks各参数功能见表2.3。
表2.3 Hyperlinks各参数功能列表
实例62 工作表链接
【技巧说明】 光标从一个单元格跳转至另一个工作表。
【案例介绍】 在工作表C3∶C6中输入当前工作簿的所有工作表名称,单击名称则跳转至相应工作表。
【案例实现】 参见以下步骤:
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
[3] 在右边代码窗口输入以下代码:
Sub添加链接() Dim i, rng As Range For i=1 To 4 Set rng=Cells(i+2, 3) ActiveSheet.Hyperlinks.Add Anchor:=rng, Address:="", SubAddress:= rng.Text & "!A1", ScreenTip:=rng.Text & "!A1", TextToDisplay:= rng.Text Next End Sub
[4] 关闭VBE窗口返回到工作表。
[5] 用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,C3∶C6区域的工作表名称将产生链接功能,并且提示链接目标区域地址,如图2.60所示。
图2.60 添加链接
提示
本实例参见光盘样本:..\第2部分\实例62.xlsm。
【相关知识说明】
(1)单元格已有超链接功能时,单击单元格将激活链接目标,如果此时需要选择单元格,则在单击单元格时按住鼠标不动,三秒钟后自动变激活链接为选择。
(2)如果要删除本例方式添加的超链接,有两种方法:
● 在任一空白单元格输入1,复制该单元格,然后选择需要取消链接的区域,单击鼠标右键,选择菜单【选择性粘贴】,在“选择性粘贴”对话框中选择“乘”,单击“确定”按钮即可。
● 也可以用代码来删除:
Sub删除链接() Selection.Hyperlinks.Delete End Sub
实例63 删除工作表中数据链接
【技巧说明】 删除与其他工作簿的数据链接。
【案例介绍】 工作表中有很多公式,其中有链接到其他工作簿数据的公式,若目录工作簿移动位置或者被删除,则公式结果将出错。现需将这种引用了其他工作簿数据的公式转换成数值,其他公式则保留。数据表如图2.61所示。
图2.61 引用了其他工作簿数据的工作表
【案例实现】 参见以下步骤:
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
[3] 在右边代码窗口输入以下代码:
Sub删除与其他工作簿之数据链接() Dim Cell As Range, FirstAddress As String Application.ScreenUpdating=False With ActiveSheet.UsedRange Set Cell=.Find("=*!", LookIn:=xlFormulas, searchorder:=xlByRows, LookAt:=xlPart, MatchCase:=True) On Error GoTo err FirstAddress=Cell.Address Do Cell=Cell.Value Set Cell=.FindNext(Cell) Loop Until Cell Is Nothing Or Cell.Address=FirstAddress End With Application.ScreenUpdating=True err: End Sub
[4] 关闭VBE窗口返回到工作表。
[5] 利用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,第三列公式全部转换成值,第二列公式不变,分别如图2.62和图2.63所示。
图2.62 引用其他工作簿的公式已转换成值
图2.63 普通公式已保留
提示
本实例参见光盘样本:..\第2部分\实例63.xlsm。
【相关知识说明】
(1)FindNext:表示在使用Find方法时继续以原方式搜索,查找匹配相同条件的下一个单元格,并返回表示该单元格的Range对象。该操作不影响选定内容和活动单元格。
(2)Do…Loop:当条件为True时,或直到条件变为True时,重复执行一个语句块中的命令。
实例64 删除工作表自动添加的网址及mail地址链接
【技巧说明】 删除工作表自动添加的网址及mail地址链接。
【案例介绍】 在工作表中输入网址或者E-mail地址时,工作表将自动产生链接,如图2.64所示。现需删除该链接功能,让输入字符不产生提示及自动链接。
【案例实现】 参见以下步骤:
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
[3] 在右边代码窗口输入以下代码:
Sub删除工作表自动添加的超链接() Dim mycell As Range For Each mycell In ActiveSheet.UsedRange mycell.Hyperlinks.Delete End Sub
Next
[4] 关闭VBE窗口返回到工作表。
[5] 利用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,网址和E-mail地址都已去除链接功能,如图2.65所示。
图2.64 工作表自动产生链接
图2.65 删除了链接功能的地址
提示
本实例参见光盘样本:..\第2部分\实例64.xlsm。
【相关知识说明】
Hyperlinks.Delete:删除超链接。