Kerstine دارای یک کاربرگ با لینک های بسیار بسیار مختلف در آن است. او در حال تعجب است که آیا راهی وجود دارد که بتواند تنها بخشی از هر پیوند را جایگزین کند. برای مثال، او ممکن است بخواهد هر نمونه از http://www.mysite.com/ را به c:/documents/mycopy/ تغییر دهد. اگر چیز دیگری در پیوندها وجود دارد، آن قسمت باید باقی بماند. بنابراین، برای مثال، اگر لینک اصلی http://www.mysite.com/thispage.html باشد، به c:/documents/mycopy/thispage.html تغییر می کند.
این کار به راحتی با ماکرو قابل انجام است. دلیل آن این است که لینک ها را می توان با استفاده از توابع رشته ای منظم بررسی و تغییر داد. ماکرو زیر یک راه ساده برای رفع مشکل ارائه می دهد.
Sub EditHyperlinks()
Dim lnkH As Hyperlink
Dim sOld As String
Dim sNew As String
sOld = "https://www.mysite.com"
sNew = "c:/documents/mycopy/"
For Each lnkH In ActiveSheet.Hyperlinks
lnkH.Address = Replace(lnkH.Address, sOld, sNew)
lnkH.TextToDisplay = Replace(lnkH.TextToDisplay, sOld, sNew)
Next
End Sub
این روال تمام پیوندهای موجود در کاربرگ فعلی را طی می کند و در صورت لزوم در هر کدام تغییراتی ایجاد می کند. هر دو لینک و متن نمایش داده شده در صورت لزوم تغییر می کنند. تنها کاری که باید انجام دهید این است که در رشته های sOld و sNew تغییراتی ایجاد کنید تا مشخص کنید به دنبال چه چیزی هستید و می خواهید آن را با چه چیزی جایگزین کنید.