2016-07-25 4 views
1

列Aにハイパーリンクのリストがありますが、一部では機能しないものもあれば、そうでないものもあります。私は彼らが働いているかどうかをチェックするスクリプトを作ろうとしています。私が持っているもの:Excelでハイパーリンクが機能するかどうかを確認することはできますか?

Sub UndoLink() 
Dim rng As Range 
Dim i As Long 
Dim n As String 
i = 2 
While i <= 4730 

Set rng = Range("A" & i) 
n = Range("A" & i).Value 
    If Worksheet.Function.FileExist(rng) = False Then 
     rng.Hyperlinks.Delete 
     i = i + 1 
    Else: i = i + 1 
    End If 
Wend 
End Sub 

Public Function FileExist(path As String) As Boolean 
    If Dir(path) <> vbNullString Then FileExist = True 
End Function 

サブファイル内のFileExistを参照すると関数エラーが発生します。明確にするために、ハイパーリンクはすべて青色の下線付きの "648242"のような文字列内にあります。パスが存在しない場合は、ハイパーリンクを削除して文字列を保持します。これは可能ですか?

rng.Hyperlinks.Delete 

答えて

1

は、ハイパーリンクを削除します。それは私が行方不明だ。サブ定義内のユーザー定義関数を参照する正しい方法は何ですか?
+0

恐ろしい: – user1996971

+1

「MyVar = MyFunction(param)」と似ていますか? – Taosique

+0

私はそうは思わない。私は 'If'ステートメントでObject not definedエラーを受け取りました。その行に何か問題がありますか? – user1996971

関連する問題