Wendy دارای یک کاربرگ اکسل است که حاوی بیش از 1200 لینک به فایل های TIFF است. (اینها لینکها هستند، نه پیوندهای معمولی.) اکسل دچار مشکل شد و مجبور شد خاموش شود، بنابراین امیلی از فایلهای ذخیره خودکار برای بازیابی فایلهای ذخیره شده قبلی استفاده کرد. اکنون تمام پیوندهای قبلی کار نمی کنند. او لینکهایی را به تصاویر در یک درایو شبکه مشترک داشت، اما ذخیره خودکار لینکها را برای ارجاع به درایو C تغییر داد. او در تعجب است که آیا راه آسانی برای تعمیر آنها به درایو شبکه مشترک وجود دارد.
در ابتدا ممکن است به نظر برسد که میتوانید از ویژگی Find and Replace معمولی Excels برای پیدا کردن نام هارد دیسک (مانند file://c:) و جایگزینی آن با یک درایو شبکه (مانند file://shareddrive) استفاده کنید. مشکل این است که این رویکرد فقط به بخشی از مشکل رسیدگی میکند - فقط بخش نمایش دادهشده از هایپرلینک را تغییر میدهد، نه خود هایپرلینک زیربنایی. تنها راهی که می توانید به خود هایپرلینک دسترسی پیدا کنید استفاده از ماکرو است.
با فرض اینکه تمام لینک هایی که نیاز به تغییر دارند در یک کاربرگ هستند، می توانید از ماکرو زیر استفاده کنید:
Sub FixHyperlinks()
Dim h As Hyperlink
Dim sOld As String
Dim sNew As String
sOld = "c:"
sNew = "S:Network"
For Each h In ActiveSheet.Hyperlinks
h.Address = Replace(h.Address, sOld, sNew)
Next h
End Sub
تنها کاری که باید انجام دهید این است که مقادیر اختصاص داده شده به متغیرهای sOld و sNew را تغییر دهید.