جان یک ستون از شماره فاکتورها در یک کاربرگ دارد. او یک دایرکتوری در شبکه دارد که کارکنان یک پی دی اف فاکتور واقعی را ذخیره می کنند و آن را با استفاده از همان شماره فاکتوری که در کاربرگ است نامگذاری می کنند. هر شماره فاکتور در کاربرگ باید یک پی دی اف با نام متناظر در دایرکتوری شبکه داشته باشد. جان به دنبال راهی در اکسل است تا بررسی و تأیید کند که واقعاً یک PDF برای هر شماره فاکتور وجود دارد.
هیچ راهی برای انجام این کار با استفاده از دستورات داخلی اکسل وجود ندارد. با این حال، می توانید یک ماکرو ایجاد کنید که بررسی را برای شما انجام دهد. به عنوان مثال، تابع ساده تعریف شده توسط کاربر زیر را در نظر بگیرید:
Function FileExists1(sPath As String)
FileExists1 = Dir(sPath) <> ""
End Function
روتین به سادگی یک مقدار True یا False را بر اساس وجود فایل مشخص شده برمی گرداند. مقداری که به تابع ارسال می شود باید یک مسیر کامل و نام فایل را شامل شود. به عنوان مثال، اگر مشخصات فایل (از جمله مسیر) در سلول A1 بود، می توانید از موارد زیر در یک سلول استفاده کنید:
=FileExists1(A1)
اما ممکن است نخواهید نام کامل مسیر را در سلول قرار دهید. در این صورت، می توانید آن را در فرمول واقعی به این ترتیب مشخص کنید:
=FileExists1("c:yourpathhere" & A1 & ".pdf")
البته، به جای آن می توانید مسیر را در تابع تعریف شده توسط کاربر مشخص کنید:
Function FileExists2(sFile As String)
sPath = "c:yourpathhere" & sFile & ".pdf"
FileExists2 = Dir(sPath) <> ""
End Function
با چنین تابعی می توانید به راحتی فرمولی را در کاربرگ خود ایجاد کنید که هر فاکتوری را که در فهرست گم شده است "پرچم" کند:
=IF(FileExists2(A1),"","Missing Invoice")