2014-01-15 20 views
0

我有以下問題:繞過舊的超鏈接錯誤

我有一個宏腳本爲excel運行超過300個excel工作簿,幾張。 問題是,這些表中的一些有錯誤的超鏈接,每次我運行宏,彈出消息告訴我,工作表中發現的超鏈接不工作,我必須點擊每次,:,,取消' '。有沒有一種方法(代碼),我可以寫,會自動,取消''彈出問題,如果它出現?

+2

嘗試夾'Appliction.DisplayAlerts = FALSE'和'Appliction.DisplayAlerts = TRUE'之間的代碼? –

回答

1

您應該能夠在包裝代碼繞過這個:

Application.DisplayAlerts = False 

-- your code -- 

Application.DisplayAlerts = True 
0

比方說,你的超鏈接都指向一個工作表的單元,並且該工作表可能不再存在,最好的辦法可能只是刪除這些超鏈接。

這是你會怎麼做:

Sub RemoveDeadHyperlinks() 

    For Each hyperL In ActiveSheet.Hyperlinks 

     'Extract name of the sheet from the subaddress 
     toSheet = Left(hyperL.SubAddress, InStr(hyperL.SubAddress, "!") - 1) 

     If WorksheetExists(toSheet) Then 

      'Most likely a valid hyperlink! 

     Else 

      'Most likely a dead one! 
      hyperL.Delete 

     End If 

    Next 

End Sub 

Public Function WorksheetExists(ByVal WorksheetName As String) As Boolean 

    On Error Resume Next 
    WorksheetExists = (Sheets(WorksheetName).Name <> "") 
    On Error GoTo 0 

End Function