اکسل به شما امکان می دهد فرمول ها را به راحتی ویرایش کنید. با انجام این کار، می توانید به سرعت یک مرجع سلولی یا یک مرجع محدوده را از نسبی به مطلق تغییر دهید. اگر تعداد زیادی سلول دارید که در آنها باید از مرجع نسبی به مطلق تغییر دهید، چه؟ در این مثال، ماهیت مشکل برای حل از طریق یک کلان مناسب است.
با استفاده از روش ConvertFormula موجود در VBA، می توانید به راحتی فرمول را از آدرس دهی نسبی به مطلق تبدیل کنید. ماکرو کوتاه زیر از این روش برای تغییر روش آدرس دهی مورد استفاده در محدوده سلولی استفاده می کند:
Sub Relative2Absolute()
Dim c As Range
For Each c In Selection
If c.HasFormula = True Then
c.Formula = Application.ConvertFormula(c.Formula, _
xlA1, xlA1, xlAbsolute)
End If
Next c
End Sub
کلید نحوه عملکرد این ماکرو البته در روش ConvertFormula است. آخرین پارامتر استفاده شده توسط روش - در این مورد - xlAbsolute است. اگر می خواهید ماکرو را طوری تطبیق دهید که به انواع دیگر آدرس دهی تغییر کند، می توانید xlAbsolute را به xlRelative، xlAbsRowRelColumn یا xlRelRowAbsColumn تغییر دهید. (مطمئنم که می توانید هدف هر ثابت را با نام آن بفهمید.)
یک چیز دیگر در مورد روش ConvertFormula وجود دارد که باید به خاطر بسپارید: محدودیت طول آن 255 کاراکتر است. این بدان معناست که اگر فرمول شما بسیار طولانی باشد، ممکن است این روش آنطور که می خواهید کار نکند. بهترین راه برای فهمیدن اینکه آیا برای نیازهای شما کار می کند یا خیر این است که آن را آزمایش کنید.