2016-08-12 103 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弹出窗口说网页不存在 –

相关问题