جان یک کتاب کار دارد که بیش از هزار URL در آن وجود دارد، همه در ستون A. این ها پیوندها نیستند. آنها متن مستقیم URL های فردی هستند. جان میخواهد URLها را به لینکهای فعال تبدیل کند، اما انجام این تبدیل بهصورت جداگانه بسیار خستهکننده است، مخصوصاً برای این تعداد URL.
یکی از راه های انجام تبدیل استفاده از تابع HYPERLINK است. این فرمول را در سلول B1 قرار دهید و هر تعداد سلول را که لازم است کپی کنید:
=IF(A1="","",HYPERLINK(IF(LEFT(A1,7)="http://","","http://")&A1))
نتیجه این است که ستون B برای هر چیزی در ستون A دارای هایپرلینک خواهد بود. این فرمول خیلی قوی نیست، زیرا فقط با وجود یا عدم وجود متن "http://" سروکار دارد و ممکن است برای مقابله با " نیز به آن نیاز داشته باشید. آدرس های https". تنظیم فرمول (یعنی پیچیده تر کردن آن) امکان پذیر است، اما ممکن است بخواهید از یک ماکرو برای انجام تبدیل استفاده کنید.
برای موثر بودن، ماکرو باید از هر سلول در یک محدوده انتخاب شده عبور کند و اگر سلول خالی نیست، محتویات را به یک پیوند تبدیل کند. موارد زیر این کار را انجام خواهند داد:
Sub URL_List()
Dim sTemp As String
Dim sURL As String
Dim cell As Range
For Each cell In Selection
If cell.Value <> "" Then
sTemp = Left(cell.Value, 7)
If sTemp = "http://" Or sTemp = "https:/" Then
sURL = cell.Value
Else
sURL = "http://" + cell.Value
End If
ActiveSheet.Hyperlinks.Add Anchor:=cell, _
Address:=sURL, TextToDisplay:=cell.Value
End If
Next cell
End Sub
ماکرو بی خطا نیست. فرض بر این است که اگر سلولی حاوی چیزی باشد، یک URL معتبر است. کاری که انجام می دهد این است که محتویات سلول را بررسی می کند و اگر مطالب با متن "http://" یا "https:/" پیش گفته نباشد، پیشوندی از "http://" اضافه می شود. سپس هایپرلینک بر اساس محتویات سلول ایجاد می شود.