Использование формулы в нижнем колонтитуле (Microsoft Excel)
Скай имеет три важные ячейки на листе. Одна ячейка содержит дату начала, вторая — дату окончания, а третья — сумму транзакций между этими датами. Он хотел бы иметь нижний колонтитул для печатной страницы, который динамически включает эти три части данных. Он задается вопросом, есть ли способ поместить формулу в нижний колонтитул, чтобы она отражала эти значения.
В Excel нет встроенного способа сделать это, потому что формулы нельзя вводить в нижние колонтитулы; они не распознаются программой как формулы.
Однако вы можете использовать макрос для установки нижнего колонтитула. Предположим, ради этого подхода, что ваша начальная дата содержится в ячейке E1, ваша конечная дата — в ячейке E2, а общее количество транзакций — в ячейке E3. В этом случае вы можете использовать такой макрос:
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim sTemp As String With Worksheets("Sheet1") ' Set wording for date range sTemp = .Range("E1").Text & " through " & .Range("E2").Text sTemp = sTemp & " (" & .Range("E3").Text & ")" .PageSetup.CenterFooter = sTemp End With End Sub
В этом макросе следует отметить несколько моментов. Прежде всего, макрос устанавливает только информацию о нижнем колонтитуле на листе с именем Sheet1, хотя вы можете изменить это имя рабочего листа на все, что вам нужно. Во-вторых, обратите внимание, что свойство .Text используется вместо свойства .Value. На самом деле существует три способа ссылки на содержимое ячейки, как показано здесь:
sTemp = Worksheets("Sheet1").Range("E1") sTemp = Worksheets("Sheet1").Range("E1").Value sTemp = Worksheets("Sheet1").Range("E1").Text
Первые два подхода эквивалентны; они устанавливают sTemp равным содержимому ячейки. Третий подход отличается; он устанавливает sTemp равным форматированному тексту ячейки. Другими словами, sTemp будет соответствовать тому, что находится в ячейке E1, поскольку он отформатирован в ячейке. Поскольку вы работаете с датами и суммами, вы хотите использовать именно этот подход, поэтому он был использован в макросе.
В-третьих, макрос устанавливает нижний колонтитул в переменной sTemp. Как написано, макрос создавал нижний колонтитул, который выглядел примерно так:
1 Mar 2016 through 15 Mar 2016 ($1,234.56)
Опять же, фактический внешний вид зависит от форматирования ячеек E1, E2 и E3. Макрос добавляет слово «через» и помещает в круглые скобки сумму транзакций. Вы можете изменить эти дополнительные элементы прямо в макросе.
В-четвертых, макрос назначает отформатированную строку sTemp (ваш нижний колонтитул) в центральную позицию в нижнем колонтитуле страницы для рабочего листа. Если вы предпочитаете, чтобы нижний колонтитул располагался в другом месте, вы можете просто изменить свойство .CenterFooter на .LeftFooter или .RightFooter.
Наконец, вы должны знать, что этот макрос предназначен для добавления в модуль ThisWorkbook. Он запускается автоматически непосредственно перед печатью книги. Однако он не запускается при просмотре листа в предварительном просмотре печати, поэтому вы не можете рассчитывать на то, что вы можете увидеть, прежде чем фактически распечатаете.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (559) применим к Microsoft Excel 2007, 2010, 2013 и 2016.