سال در ورک بوک ماکرو شخصی خود یک ماکرو دارد. اگر بخواهد این ماکرو را از رویداد Workbook_Open یک ورک بوک دیگر فراخوانی کند، با خطای "Sub or Function Not Defined" مواجه می شود. سال تعجب می کند که آیا کار خاصی باید انجام دهد تا به کلان مورد نظرش دسترسی پیدا کند.
ترفند این است که مطمئن شوید که نام ورک بوک را در فراخوانی ماکرو قرار داده اید. از آنجایی که ماکرویی که می خواهید فراخوانی کنید در ورک بوک ماکرو شخصی شما قرار دارد، به این معنی است که فراخوانی باید چیزی شبیه به این باشد:
Application.Run "Personal.xlsb!MyMacro"
Note that the workbook name (Personal.xlsb) must be included, and you should replace MyMacro with the name of the macro you want to run. If you leave out the Personal.xlsb workbook name, then VBA believes that the macro (MyMacro) is in the same workbook from which the Workbook_Open code is being executed. Since it is not there, you get the "Sub or Function Not Defined" error.