Excel VBA范例大全
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第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:删除超链接。