Дата последнего сохранения в нижнем колонтитуле (Microsoft Excel)
Лори хочет, чтобы в правой части нижнего колонтитула ее рабочего листа была указана дата последнего сохранения книги. Каждый раз, когда она пытается создать формулу для этого, Excel отображает сообщение об ошибке, в котором говорится, что «строка слишком длинная» и ей необходимо удалить некоторые символы. Она не уверена, что понимает, почему это происходит, и как она может указать дату, которую хочет, в нижнем колонтитуле.
Фактически не существует формулы, которая помещала бы дату последнего сохранения в нижний колонтитул.
У Excel нет возможности (в отличие от Word) поместить туда эту лакомую информацию.
Есть способ сделать это, но решение требует использования макроса. Причина в том, что вы получаете доступ к системной информации — информации за пределами самого Excel — и эту информацию можно получить только с помощью языка программирования, такого как 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
Если сегодня 12 декабря 2011 г., то после запуска макроса (который выполняется автоматически при сохранении) для всех правых нижних колонтитулов будет установлено значение «Последнее сохранение: 12 декабря 2011 г.».
Вы также можете полагаться на дату сохранения файла, хранящуюся во встроенных свойствах Excel. Эта дата помещается в нижний колонтитул следующим образом:
Sub RightFooterLastSaved() ActiveSheet.PageSetup.RightFooter = _ ActiveWorkbook.BuiltinDocumentProperties(12) End Sub
Недостатком этого макроса является то, что вам нужно не забывать запускать его периодически, поэтому он не такой автоматический, как предыдущие подходы. Однако вы можете поместить единственную строку в центре макроса в обработчик события Workbook_BeforePrint.
Вы можете использовать другой подход. Этот включает запрос у Windows фактической даты и времени сохранения файла.
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_Open объекта ThisWorkbook. Рабочей лошадкой макроса является строка, вызывающая функцию FileDateTime.
Эта функция может использоваться для определения даты и времени сохранения любого файла. Для этого требуется полный путь к файлу, который предоставляется свойством FullName объекта ActiveWorkbook. Затем эти дата и время помещаются в правый нижний колонтитул всех листов в книге.
Помните также, что предел того, что вы можете поместить в каждый раздел верхнего или нижнего колонтитула, составляет примерно 250 символов. Поэтому, если вы настраиваете макрос, чтобы добавить больше информации в правую часть нижнего колонтитула, убедитесь, что он не содержит столько символов, иначе у вас могут возникнуть проблемы с макросом.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (2190) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Last_Saved_Date_in_a_Footer [Дата последнего сохранения в нижнем колонтитуле]
.