检查并修复excel中已损坏的链接到其他工作表

时间:2018-06-05 17:32:21

标签: excel vba excel-vba

您好我是VBA和本论坛的新手。

因此,我有一个工作簿,可以使用活动链接从其他工作簿中复制数据(因此我可以刷新工作表并获取更新的值),并在其中一列中粘贴超链接(用于复制的工作簿)。我希望能够检查链接是否损坏并修复它们。所以我添加了一个刷新按钮来保持更新值和ErrorHandler到sub但不确定如何获得excel来识别/存储哪一行有断开的链接并将新链接粘贴到文件。这是可能的,我该怎么做。

如果不可能,是否可以识别损坏的超链接(具有粘贴的超链接的列)。我发现这个论坛但不确定如何更改它以便检查excel文件? Checking for broken hyperlinks in Excel

     '///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
'
'This code refreshes all links in the active worksheet.
'
'///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Sub RefreshAllLinks()

'Minimize runtime
Application.ScreenUpdating = False
Application.DisplayAlerts = False

'Initialize Variables
Dim summarywb As Workbook

'Set initial values
Set summarywb = ThisWorkbook

'Refresh all linked data on the active worksheet
summarywb.ActiveSheet.Activate
'On Error GoTo HRepair
summarywb.UpdateLink Name:=summarywb.LinkSources

HRepair:
Dim lngCount As Long
    Dim cl As Range

    Set cl = ActiveCell
    ' Open the file dialog
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = True
        .Show
        ' Display paths of each file selected
        For lngCount = 1 To .SelectedItems.Count
            ' Add Hyperlinks
            cl.Worksheet.Hyperlinks.Add _
                Anchor:=cl, Address:=.SelectedItems(lngCount), _
                TextToDisplay:=.SelectedItems(lngCount)
        Next lngCount
    End With

'Display back on
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

2 个答案:

答案 0 :(得分:0)

所以我在网上找到了这个代码,并根据我的目的进行了更改。您可以通过它来检查链接所需的所有不同情况。如果损坏,我会添加一个重新链接文件的提示。

希望这有助于每个人!

Sub GetLinkStatus()         Dim avLinks As Variant         Dim nIndex As Integer         Dim sResult As String         Dim nStatus As Integer         Dim sLink As String

<i>

答案 1 :(得分:-1)

看看以下内容是否对您有所帮助:

Check if URL exists

Fix Hyperlinks