آیا به طور معمول با کاربرگ هایی کار می کنید که حاوی ده ها (یا صدها) سلول نام گذاری شده هستند و اکثر آن نام ها غیر ضروری هستند؟ پاک کردن نام ها می تواند کار بزرگی باشد، اما خلاص شدن از شر نام هایی که به آن ها نیاز ندارید می تواند ورک بوک شما را کوچک تر و کارآمدتر کند. مشکل این است که چگونه می توان یکدفعه از شر بسیاری از نام های غیر ضروری خلاص شد؟ مطمئناً می توانید آنها را یکی یکی حذف کنید، اما چنین فرآیندی به سرعت خسته کننده می شود. همچنین می توانید از Name Manager برای حذف آن ها استفاده کنید ( Ctrl+F3 را فشار دهید )، اما این نیز می تواند بسیار وقت گیر باشد.
یک راه حل ممکن این است که به سادگی یک Workbook جدید ایجاد کنید و سلول ها را از Workbook قدیمی به Workbook جدید کپی کنید. سلول های ورک بوک قدیمی را برجسته کنید، از کلیدهای Ctrl+C برای کپی کردن آنها استفاده کنید، سپس آنها را در کاربرگ های جدید جای گذاری کنید. این تقریباً همه چیز را از ورک بوک قدیمی کپی می کند - فرمول ها، قالب بندی و غیره. روی تنظیمات چاپ یا نام محدوده کپی نمی شود. تنها کار باقی مانده این است که چند نامی را که می خواهید در ورک بوک جدید دوباره تعریف کنید.
اگر ترجیح می دهید با ورک بوک قدیمی (یکی که همه نام ها را دارد) کار کنید، بهتر است یک ماکرو ایجاد کنید که حذف نام را برای شما انجام دهد. شما به یک ماکرو نیاز دارید که به شما امکان می دهد همه نام ها را به جز نام هایی که می خواهید نگه دارید حذف کنید. روش زیر یک روش ساده است که این کار را انجام می دهد:
Sub DeleteSomeNames()
Dim vKeep
Dim nm As Name
Dim x As Integer
Dim AWF As WorksheetFunction
Add Names to keep here
vKeep = Array("Name1", "Name2")
Set AWF = Application.WorksheetFunction
For Each nm In ActiveWorkbook.Names
x = 0
On Error Resume Next
x = AWF.Match(nm.Name, vKeep, 0)
On Error GoTo 0
If x = 0 Then
nm.Delete
End If
Next
Set AWF = Nothing
End Sub
قبل از استفاده از ماکرو، خطی که آرایه vKeep را ایجاد می کند را تغییر دهید. به سادگی نام هایی را که می خواهید در آرایه نگه دارید، وارد کنید، هر نام با نقل قول احاطه شده و با کاما از هم جدا شده است. (در مثالی که در اینجا نشان داده شده است، نام های "Name1" و "Name2" حفظ می شوند.) ماکرو در میان همه نام های ورک بوک حلقه می زند و از تابع Match استفاده می کند تا ببیند آیا نام یکی در آرایه است یا خیر. اگر اینطور نیست، حذف می شود.
اگر ترجیح می دهید از یک راه حل شخص ثالث برای مدیریت نام ها در ورک بوک خود استفاده کنید، یک انتخاب عالی افزونه Name Manager است که توسط Jan Karel Pieterse نوشته شده است. اطلاعات بیشتر در مورد افزونه را می توانید در اینجا بیابید:
https://jkp-ads.com/excel-name-manager.asp