Graeme دارای یک کتاب کار است که تعداد زیادی (120+) محدوده نام گذاری شده در آن تعریف شده است. او میخواهد نامها و تعاریف محدودهها را در کتاب کار دیگری کپی کند. بنابراین، پس از کپی، محدوده ای به نام MyRange1 که به محدوده C7:H22 در کتاب کار اصلی اشاره دارد، در کتاب کار هدف وجود خواهد داشت و به همان محدوده در کتاب کار هدف اشاره می کند. هیچ چیز دیگری نباید از کتاب کار اصلی به هدف کپی شود - فقط نام محدوده و تعاریف.
ساده ترین راه برای انجام این کار با یک ماکرو است که از هر یک از نام های تعریف شده شما عبور می کند و تعریف نام را در کتاب کار مورد نظر کپی می کند. یک مثال در اینجا آمده است:
Sub CopyNames()
Dim Source As Workbook
Dim Target As Workbook
Dim n As Name
Set Source = ActiveWorkbook
Set Target = Workbooks("Book2.xlsx")
For Each n In Source.Names
If n.Visible Then
Target.Names.Add Name:=n.Name, RefersTo:=n.Value
End If
Next
End Sub
این ماکرو تقریباً همه نام سادگی را فرض می کند. ابتدا فرض میکند که شما یک workbook هدف باز دارید و نام آن Workbook Book2.xlsx است. اگر این کار را نکنید، پس از اجرای ماکرو خراب می شود و می سوزد. در صورت تمایل می توانید نام کتاب کار مورد نظر را مطابق با نیازهای خود تغییر دهید یا می توانید ماکرو را طوری تغییر دهید که یک کتاب کار جدید اضافه کرده و از آن استفاده کند.
دوم، محدوده های نامگذاری شده به طور پیش فرض شامل نام کاربرگ در ویژگی Value هستند. اگر کتاب کار منبع دارای یک محدوده نامگذاری شده باشد که مثلاً به Sheet4 اشاره دارد و هیچ Sheet4 در کتاب کار مورد نظر وجود نداشته باشد، اضافه کردن نام ناموفق است. ماکرو خطایی ایجاد نمی کند. به سادگی محدوده نامگذاری شده جدید را ایجاد نمی کند. راه حل این است که (الف) مطمئن شوید که کتاب کار هدف شامل همان نام های برگه کتاب منبع است یا (ب) ماکرو را طوری تغییر دهید که تشخیص دهد برگه های گم شده وجود دارد و هر اقدام مناسب را انجام دهد.
توجه داشته باشید که اکثر کارها در ماکرو در حلقه For Every انجام می شود که از همه نام های تعریف شده عبور می کند. اگر محدوده نامگذاریشده قابل مشاهده باشد (به این معنی که یک نام محدوده استفاده شده توسط سیستم پنهان نیست)، پس maco نام را در کتاب کار هدف ایجاد میکند و همان تخصیصی را که در کتاب کار مبدا (که در ویژگی Value موجود است) به آن میدهد. .
اگر ترجیح میدهید ماکرو ایجاد نکنید، سادهترین روش ممکن است کپی کردن کاربرگهای خود از کتاب کار منبع به یک کتاب کار هدف باشد. اکسل به طور کلی محدوده های نامگذاری شده را همراه با کاربرگ ها کپی می کند. تنها زمانی که این یک رویکرد رضایتبخش نخواهد بود این است که کتاب کار هدف قبلاً دارای برگههایی با همان نامهایی باشد که ممکن است بخواهید کپی کنید. در این صورت، بهتر است از رویکرد کلان استفاده کنید.