لوری میخواهد که سمت راست پاورقی برگهاش حاوی تاریخ آخرین ذخیرهسازی کتاب کار باشد. هر بار که او سعی می کند فرمولی برای انجام این کار ایجاد کند، اکسل یک پیغام خطایی نشان می دهد که می گوید "رشته خیلی طولانی است" و باید برخی از کاراکترها را حذف کند. او مطمئن نیست که بفهمد چرا این اتفاق می افتد یا چگونه می تواند تاریخ مورد نظر خود را در فوتر بدست آورد.
هیچ فرمول واقعی وجود ندارد که بتواند آخرین تاریخ ذخیره شده را در فوتر قرار دهد. اکسل (برخلاف Word) هیچ راهی برای قرار دادن این اطلاعات جزئی ندارد. راهی وجود دارد که می توانید آن را انجام دهید، اما راه حل نیاز به استفاده از یک ماکرو دارد. دلیل آن این است که شما به اطلاعات سیستم - اطلاعات خارج از خود اکسل - دسترسی دارید و این اطلاعات فقط با استفاده از یک زبان برنامه نویسی مانند VBA قابل بازیابی است.
یک روش اضافه کردن کدی است که هر زمان که یک کتاب کار ذخیره می شود اجرا می شود. کد پاورقی مورد نظر را با تاریخ فعلی به روز می کند:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
ActiveWorksheet.PageSetup.RightFooter = _
"Last Saved: " & Format(Date, "mmmm d, yyyy")
End Sub
این ماکرو، که باید در شی ThisWorkbook برای کتاب کاری که میخواهید روی آن تأثیر بگذارید، ذخیره شود، پاورقی را برای کاربرگ فعال فعلی بهروزرسانی میکند. اگر میخواهید روی همه کاربرگهای یک کتاب کار تأثیر بگذارید، یک تغییر کوچک در ماکرو لازم است:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
Dim sht As Worksheet
For Each sht In Sheets
sht.PageSetup.RightFooter = _
"Last Saved: " & Format(Date, "mmmm d, yyyy")
Next
End Sub
اگر امروز 11 دسامبر 2021 است، پس از اجرای ماکرو (که هنگام ذخیره به صورت خودکار انجام می شود)، پاورقی های سمت راست همه روی "آخرین ذخیره: 11 دسامبر 2021" تنظیم می شوند.
همچنین می توانید به تاریخ ذخیره فایل ذخیره شده در ویژگی های داخلی اکسل اعتماد کنید. نحوه قرار دادن تاریخ در فوتر به شرح زیر است:
Sub RightFooterLastSaved()
ActiveSheet.PageSetup.RightFooter = _
ActiveWorkbook.BuiltinDocumentProperties(12)
End Sub
اشکال این ماکرو این است که باید به یاد داشته باشید که آن را به صورت دوره ای اجرا کنید، بنابراین به اندازه روش های قبلی کاملاً خودکار نیست. با این حال، می توانید خط واحد را در قلب ماکرو در کنترل کننده رویداد Workbook_BeforePrint قرار دهید.
روش دیگری وجود دارد که می توانید از آن استفاده کنید. این یکی شامل درخواست از ویندوز تاریخ و زمان واقعی ذخیره یک فایل است.
Private Sub Workbook_Open()
Dim sTemp As String
Dim sht As Worksheet
sTemp = FileDateTime(ActiveWorkbook.FullName)
sTemp = "Last Saved: " & sTemp
For Each sht In Sheets
sht.PageSetup.RightFooter = sTemp
Next sht
End Sub
این ماکرو به گونهای طراحی شده است که هر زمان که یک Workbook برای اولین بار باز میشود اجرا شود—بهعنوان رویه Workbook_Open شی ThisWorkbook ذخیره میشود. نیروی کار ماکرو خطی است که تابع FileDateTime را فراخوانی می کند. از این تابع می توان برای تعیین تاریخ و زمان ذخیره هر فایل استفاده کرد. به نام مسیر کامل یک فایل نیاز دارد که توسط ویژگی FullName شی ActiveWorkbook ارائه می شود. سپس این تاریخ و زمان در پاورقی سمت راست همه کاربرگ های کتاب کار قرار می گیرد.
همچنین به یاد داشته باشید که محدودیت آنچه می توانید در هر بخش از سرصفحه یا پاورقی قرار دهید تقریباً 250 کاراکتر است. بنابراین اگر ماکروها را طوری تنظیم میکنید که اطلاعات بیشتری را به قسمت سمت راست پاورقی اضافه کنید، مطمئن شوید که تعداد آنها کاراکتر زیاد نباشد، در غیر این صورت ممکن است با ماکرو مشکل داشته باشید.