В тази статия ще ви покажем автоматичен начин за бързо пакетно валидиране на всички хипервръзки във вашия Word документ чрез VBA.
Един документ на Word може да съдържа много хипервръзки, дори стотици. Сред тях някои са невалидни връзки, които не успяват да ви отведат до правилна уеб страница. Затова искаме да ви предложим начин за бърза проверка на всички връзки в документ чрез VBA.
Инсталирайте и запишете макрос на Word
- Първо, отворете VBA редактор с „Alt+ F11“.
- След това щракнете върху „Нормален“ проект.
- След това щракнете върху раздела „Вмъкване“ в менюто на лентата с инструменти.
- И изберете „Модул“ в менюто.
- Кликнете два пъти върху модула, за да отворите пространството за редактиране и поставете следните кодове там:
Function CheckURL(strURL As String) As Boolean
Dim objDemand As Object
Dim varResult As Variant
On Error GoTo ErrorHandler
Set objDemand = CreateObject("WinHttp.WinHttpRequest.5.1")
With objDemand
.Open "GET", strURL, False
.Send
varResult = .StatusText
End With
Set objDemand = Nothing
If varResult = "OK" Then
CheckURL = True
Else
CheckURL = False
End If
ErrorHandler:
End Function
Sub ReturnURLCheck()
Dim objLink As Hyperlink
Dim strLinkText As String
Dim strLinkAddress As String
Dim strResult As String
Dim nInvalidLink As Integer, nTotalLinks As Integer
Dim objDoc As Document
Application.ScreenUpdating = False
Set objDoc = ActiveDocument
nTotalLinks = objDoc.Hyperlinks.Count
nInvalidLink = 0
With objDoc
For Each objLink In .Hyperlinks
strLinkText = objLink.Range.Text
strLinkAddress = objLink.Address
If Not CheckURL(strLinkAddress) Then
nInvalidLink = nInvalidLink + 1
strResult = frmCheckURLs.txtShowResult.Text
frmCheckURLs.txtShowResult.Text = strResult & nInvalidLink & ". Invalid Link Information:" & vbNewLine & _
"Displayed Text: " & strLinkText & vbNewLine & _
"Address: " & strLinkAddress & vbNewLine & vbNewLine
End If
Next objLink
frmCheckURLs.txtTotalLinks.Text = nTotalLinks
frmCheckURLs.txtNumberOfInvalidLinks.Text = nInvalidLink
frmCheckURLs.Show Modal
End With
Application.ScreenUpdating = True
End Sub
Sub HighlightInvalidLinks()
Dim objLink As Hyperlink
Dim strLinkAddress As String
Dim strResult As String
Dim objDoc As Document
Set objDoc = ActiveDocument
With objDoc
For Each objLink In .Hyperlinks
strLinkAddress = objLink.Address
If Not CheckURL(strLinkAddress) Then
objLink.Range.HighlightColorIndex = wdYellow
End If
Next objLink
End With
End Sub
- След това кликнете върху „Запазване“.
- След това задайте бутон за макроса. Можете да се обърнете към следната статия за подробна информация:
Как да премахнете форматирането на поставени текстове с макро и VBA във вашата дума
Създайте потребителски формуляр
С потребителски формуляр можете ясно да видите общия брой връзки в текущия документ, броя на невалидните връзки и повече подробности.
- Първо щракнете отново върху „Вмъкване“ в лентата с инструменти. Но този път изберете „UserForm“.
- След това натиснете „F4“, за да отворите „Прозорец със свойства“ в долния ляв ъгъл. Размерът на прозореца е регулируем.
- Сега наименувайте потребителския формуляр като „frmCheckURLs“.
- Задайте надпис като „Проверка на URL адреси“.
- След това задайте правилно шрифта.
- След това щракнете върху бутона „Кутия с инструменти“ в лентата с инструменти.
- Сега щракнете върху „Етикет“ в кутията с инструменти. Използвайте мишката, за да плъзнете правоъгълен етикет върху потребителския формуляр.
- Щракнете върху етикета, за да активирате прозореца на неговите свойства. Задайте името на етикета като „lblInvalidURLs“ и надписа на етикета като „Невалидни URL адреси:“.
- След това изберете подходящ шрифт и преден цвят за текста на надписа на етикета.
- Изберете „Текстово поле“ в кутията с инструменти и вмъкнете текстово поле в потребителския формуляр. Регулирайте размера му.
- След това задайте името на текстовото поле като „txtShowResult“.
- Задайте шрифт и преден цвят по желание.
- Намерете „MultiLine“ и го задайте „True“.
- Намерете „Ленти за превъртане“ и изберете вертикална лента.
- След това създайте още два етикета и текстови полета.
- След това наименувайте първия етикет като „lblTotalLinks“ и задайте надпис като „Общ брой връзки в този документ“.
- И наименувайте втория етикет като „lblNumberOfInvalidLinks“ и задайте надпис като „Брой невалидни връзки“.
- Наименувайте първото текстово поле като „txtTotalLinks“, а второто като „txtNumberOfInvalidLinks“.
- След това намерете контрола на командния бутон в кутията с инструменти. Създайте два командни бутона, като например по-долу:
- Наименувайте първия бутон като „cmdbtnClose“, а текста на надписа му като „Затвори“.
- Наименувайте втория бутон като „btnCloseAndHighlightInvalidURLs“, а текста на надписа му като „Затваряне и маркиране на невалидни URL адреси“.
- След това кликнете два пъти върху бутона „Затваряне“ и съответно бутона „Затваряне и маркиране на невалидни URL адреси“. Въведете кодовете, както следва:
Стартирайте макроса
Щракнете върху бутона, който присвоявате на макроса. Ето и крайния ефект:
Можете да видите подробна информация за всяка неуспешна връзка в лявото голямо текстово поле. И можете да изберете да затворите потребителския формуляр директно или да го затворите, докато маркирате всички повредени връзки в документа.
Отнасяйте се внимателно към проблемите с думите
Word е лесно податлив на грешки. Така става изключително важно да се поправете Word правилно. Мost на времето вграденият инструмент не може да ви помогне толкова много. Следователно вашият най-добър избор е да вземете инструмент за ремонт на трета страна.
Въведение на автора:
Вера Чен е експерт по възстановяване на данни в DataNumen, Inc., която е световен лидер в технологиите за възстановяване на данни, включително ремонт xlsx и pdf ремонт на софтуерни продукти. За повече информация посетете WWW.datanumen.com








