Здравствуйте, я новичок в VBA и на этом форуме.
Итак, у меня есть книга, в которой хранятся данные из других книг с использованием активных ссылок (поэтому я могу обновить рабочий лист и получить обновленные значения) и гиперссылка (для скопированной книги), вставленная в один из столбцов. Я хочу проверить, не сломаны ли ссылки и не исправлять их. Поэтому я добавил кнопку обновления, чтобы обновлять значения и ErrorHandler, но я не уверен, как получить excel, чтобы определить / сохранить, какая строка имеет неработающую ссылку, и вставить новую ссылку в файл. Возможно ли это, и как бы я это сделал.
Если это невозможно, можно ли идентифицировать сломанные гиперссылки (столбец с вложенными гиперссылками). Я нашел этот форум, но не знаю, как его изменить, чтобы он проверял файлы excel? Проверка поврежденных гиперссылок в 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.LinkSourcesHRepair:
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
Посмотрите, поможет ли вам следующее:
Проверьте, существует ли URL-адрес
Fix Hyperlinks
Итак, я нашел этот код онлайн и изменил его для своих целей. Вы можете получить его, чтобы проверить все различные случаи, которые вы хотите для ссылок. Я добавлю приглашение повторно связать файл, если он сломан.
Надеюсь, это поможет всем!
Sub GetLinkStatus () Dim avLinks Как VariantDim nIndex As IntegerDim sResult As StringDim nStatus As IntegerDim sLink Как строка