[VBA] 自動超連結 - FollowHyperlink

顯示結果從第 1 筆 到 2 筆,共計 2 筆
  1. #1
    Take it easy~ leonchou 的大頭照
    註冊日期
    2001-05-03
    討論區文章
    3,244

    [VBA] 自動超連結 - FollowHyperlink

    超連結一定要「插入超連結」嗎? 答案是:No.
    如果你的 Excel 活頁簿裡含有網址、文件、檔案的路徑,為了方便連結,
    你可能會使用「插入超連結」的功能。可是又不喜歡那藍字底線的格式出現在
    活頁薄裡(雖然可以改...),而且按過以後還會變色...
     
    以下就來說明如何使用事件巨集(註1),讓你只要 "選取" 含有超連結的儲存格,
    就會自動以對應的程式開啟網頁或文件(假設網址或路徑是在E欄) --
     
    一.在工作表名稱按右鍵 >> 選擇 [檢視程式碼]
     
     
     
    二.在出現的 Visual Basic 編輯器視窗輸入以下內容:
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    1 Set a = Target.Cells(1): If a = "" Or a.Column <> 5 Then Exit Sub
    2 ActiveWorkbook.FollowHyperlink a, , False
    End Sub
     
    程式說明
    1. 設定變數 a = 選取範圍的第一格(以免不小心選取到多格);
      若 a 為空白或 a 不在第 5 欄(即E欄)則結束巨集不執行以下動作。
    2. 以對應的程式(如 IE)開啟 a 所代表的網頁或文件,False 是指若 a 是
      網址且 IE 已開啟,則使用原 IE 視窗;改為 True 則會開啟新視窗。

    你也可以開啟電腦裡的文件(如 HTM、DOC..)檔,並跳至文件裡的某書籤位置。
    假設這些文件放在一個固定的資料夾裡,則儲存格裡的文件路徑可省略,只要檔名即可。
    以 HTM (HTML) 檔為例,若要指定書籤位置,則在檔名後加上逗號書籤名稱(註2)。
    巨集如下 --
     
    Const path1 = "D:\HTML\Articles\"
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    1 Set a = Target.Cells(1): If a = "" Or a.Column <> 5 Then Exit Sub
    2 n = InStr(1, a, ","): b = ""
    3 If n > 0 Then b = Right(a, Len(a) - n): a = Left(a, n - 1)
    4 ActiveWorkbook.FollowHyperlink path1 & a & ".htm", b, True
    End Sub
     
    程式說明
    1. Const 是宣告(設定)常數,這裡設定常數 path1 為一固定的資料夾路徑。
    2. 設定變數 a = 選取範圍的第一格(以免不小心選取到多格);
      若 a 為空白或 a 不在第 5 欄(即E欄)則結束巨集不執行以下動作。
    3. 用函數 Instr 偵測 a 是否含有逗號,並將結果設為一變數 n ;
      設定變數 b 為空字串,代表書籤位置的起始值。
    4. 若 n > 0 表示 a 裡含有逗號( n 為逗號所在的位置),則將變數 b 設為
      逗號之後的字串,代表書籤位置,將變數 a 設為逗號之前的字串。
    5. 以對應的程式(IE)開啟 path1 路徑(資料夾)下的 a(HTM 檔),
      並跳至 b 所代表的書籤位置(若有的話);True: 以新視窗開啟。

     
    註1:事件巨集可以控制一個物件(如活頁簿、工作表), 當發生選取、
       修改、開啟... 等等事件時, 所要做的事情/動作.
       上述巨集就是利用事件巨集: 當工作表上的任一格被選取時,
       引發了工作表的 SelectionChange 事件, 而自動執行這個
       巨集 -- 也就是說, 不須手動執行. 事件巨集必須位於物件模組之中.
     
    註2:例如「abc,xyz」表示 abc.htm 裡名為 xyz 的書籤位置。當然該 HTM 檔裡
       必須要有 ... 的 HTML Tag。


    <span style="filter:glow(color=3CB371,strength=4);width:100%;color:#3CB371;font-family:Comic Sans MS;font-size:18;font-weight:bold">No desire, No pain.</span><p><span style="filter:glow(color=FF4500,strength=3);width:100%;color:#FF8C00;font-family:Comic Sans MS;font-size:18;font-weight:bold">Before Asking, You should RTFH, RTFM, STFW...</span>

  2. #2
    會員
    註冊日期
    2001-08-01
    所在地區
    ADSL 8M/640K
    討論區文章
    38
    ^^ 謝謝您~
    又學了一手~!

類似的主題

  1. Frontpage 2003 超連結使用相對路徑 存檔後會自動加上 ../ 連到上一層造成錯誤
    作者:halihan 所在討論版:-- OFFICE 相 關 軟 體 討 論 版
    回覆: 1
    最後發表: 2009-04-21, 05:40 PM
  2. 【求助】如何利用VBA取得EXCEL中超連結的資料
    作者:Timothy 所在討論版:-- OFFICE 相 關 軟 體 討 論 版
    回覆: 3
    最後發表: 2004-12-13, 12:42 PM
  3. 【求助】按下Outlook Express信件的超連結不會自動開啟IE ??
    作者:daniel35 所在討論版:-- 網 路 軟 體 討 論 一 版 (Browser,Email
    回覆: 1
    最後發表: 2002-12-25, 10:54 PM
  4. 超連結問題
    作者:lian 所在討論版:-- HELP ME 電 腦 軟 硬 體 急 救 版
    回覆: 10
    最後發表: 2002-09-22, 04:36 PM

 

https:www.pczone.com.twthread-16015.html

vba 開啟網頁

vba 網路連線

excel vba 連結檔案路徑

vba 超連結語法

excel vba 開啟網頁

excel 偵測網路連線

VBA 開啟URL

VBA 開啟ie網頁

execl巨集開啟超連結檔案

excel vba ActiveWorkbook.Path 的上一層

VBA開啟網頁

excel vba 檔案視窗 自動連結

excel vba超連結檔名

vba 開啟連結視窗語法

vba连接html

excel vba 連結檔案

vba 打開超連

excel超連結相對路徑

vba開啟檔案視窗

用excel儲存格連結外部檔案大頭照

followhyperlink 儲存格

excel vba連結檔案

vba ie

excel 超連結事件

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •