2016-08-12 101 views
1

我正在創建一個宏,並想知道是否有任何方法來檢查單元格是否具有有效的超鏈接?我只想建立一個基本的,如果狀態:Excel中的單元格是否有超鏈接「特徵」?

If Range("A1").hyperlink = True Then 
// don't perform action 
Else 
// Perform action 
End if 

顯然.hyperlink是錯誤的(?右),反正是有這樣做嗎?

+0

Excel確實支持超鏈接對象。 [此鏈接](https://msdn.microsoft.com/en-us/library/office/ff835563.aspx)可以告訴你更多。如果我是你,我會識別我感興趣的範圍內的所有超鏈接。然後,如果(例如)範圍A1不在超鏈接對象列表中的單元格列表中,我將運行if循環,否則將失敗他們。 –

+0

你的鏈接是如何給出的?我的答案應該同時包含'= Hyperlink(「http://www.google.com」,「鏈接」)單元格和'http:// www.google.com'單元格。是否有另一種可能被忽略的格式? – BruceWayne

+1

供您參考。您稱之爲_Characteristic_的正確術語是_Property_。 – litelite

回答

0

你可以使用

If Left(Range("A1").Formula, 7) = "=HYPERLINK" Then 
    Debug.print "Link found!" 
End If 

注意上面會,如果你實際使用=Hyperlink()公式工作。如果您的單元格僅包含帶文本的超鏈接,則使用http://www.google.com,然後使用以下代碼:

Sub t() 
Dim rng As Range 
Dim isLink As Boolean 
isLink = False 

Set rng = Range("A1") 

If Left(rng.Formula, 7) = "=HYPERLINK" Then 
    isLink = True 
ElseIf rng.Hyperlinks.Count > 0 Then 
    isLink = True 
End If 

If isLink Then 
    ' If there's a hyperlink, run the code here. 
End If 


End Sub 
+0

有無論如何檢查鏈接是否有效?例如,如果超鏈接所鏈接到的Excel工作表已被刪除(由宏的另一部分...這是宏常規功能的一部分),超鏈接不再有效。但是,rng.Hyperlinks.count仍然爲1,因爲超鏈接尚未被刪除,但其目標無效,因爲它不再存在。有沒有辦法檢查? 「 –

+0

」...超鏈接不再有效。「 - 你的意思是說,如果你按照鏈接進入404 /不存在的頁面?或者它對您的使用無效? – BruceWayne

+0

是的,我的意思是說,它會跳出一個404彈出窗口說網頁不存在 –

相關問題