Получение формул из рабочего листа (Microsoft Excel)
Excel позволяет отображать формулы на листе, просто установив флажок «Формулы» на вкладке «Просмотр» диалогового окна «Параметры». Это может быть удобный способ распечатать рабочий лист, на котором показаны формулы, использованные для создания рабочего листа.
Однако этот подход работает хорошо только в том случае, если формулы, используемые на листе, довольно короткие. Если формулы длиннее, то понимание листа с отображаемыми формулами может быстро стать утомительной работой.
Одно из решений — извлечь формулы из Excel и поместить их в программу, например Word. Почему Word? Потому что вы можете легко отформатировать текстовые атрибуты (например, шрифт и размер точки) для лучшего отображения формул. При желании вы также можете добавить дополнительный текст для объяснения формул.
Самый простой способ перенести формулы из Excel в Word — выполнить следующие действия:
-
В Excel выберите «Параметры» в меню «Инструменты». Excel отображает диалоговое окно «Параметры».
-
Убедитесь, что выбрана вкладка «Просмотр». (См. Рис. 1.)
-
Убедитесь, что установлен флажок Формулы.
-
Щелкните ОК. Теперь в Excel должны отображаться формулы.
-
Выделите ячейки, формулы которых вы хотите скопировать в Word.
-
Нажмите Ctrl + C, чтобы скопировать ячейки в буфер обмена.
-
Перейти в Word.
-
Поместите курсор в то место, куда вы хотите добавить информацию.
-
Выберите «Специальная вставка» в меню «Правка». Word отображает диалоговое окно Специальная вставка. (См. Рис. 2.)
-
Выберите параметр «Неформатированный текст».
-
Щелкните ОК.
На данный момент ваши формулы находятся в Word, и вы можете поступать с ними по своему усмотрению. Хотя этот подход работает хорошо, повторение его снова и снова может стать утомительным, если вам нужно скопировать большое количество формул.
Если вы оказались в такой ситуации, вам было бы полезно иметь макрос, который фактически извлекал формулы и помещал их в документ Word за вас. Следующий макрос Excel сделает именно это:
Sub WriteFormulasToWord() Dim Wrd As New Word.Application Dim CellTxt As String Dim CellAddr As String Dim SRow As Long Dim SCol As Long Wrd.Visible = True Wrd.Documents.Add Wrd.Selection.TypeText Text:="List of the Formulas of Sheet """ _ & ActiveSheet.Name & """ in Workbook """ _ & ActiveWorkbook.Name & """." Wrd.Selection.TypeText Text:=vbCrLf & vbCrLf 'Change the following line to pick the number of columns For SCol = 1 To 5 'Change the following line to pick the number of rows For SRow = 1 To 10 If Cells(SRow, SCol).HasFormula Then CellAddr = Chr(64 + SCol) & Trim(Str(SRow)) & vbTab CellTxt = ActiveSheet.Cells(SRow, SCol).Formula Wrd.Selection.TypeText Text:=CellAddr & CellTxt Wrd.Selection.TypeText Text:=vbCrLf End If Next SRow Wrd.Selection.TypeText Text:=vbCrLf Next SCol End Sub
В этом макросе нужно отметить несколько моментов. Прежде всего, вы можете изменить диапазон строк и столбцов, в которых работает макрос, изменив отмеченные операторы For, которые используют как SCol, так и SRow. В показанном выше примере макрос извлекает формулы из столбцов с 1 по 5 (от A до E) и строк с 1 по 10.
Кроме того, этот макрос не будет работать должным образом, если вы не настроите макросы Excel для обработки ссылок на объекты Word. Для этого выполните следующие действия в редакторе VBA:
-
Выберите «Ссылки» в меню «Инструменты». VBA отображает диалоговое окно «Ссылки». (См. Рис. 3.)
-
Прокрутите список ссылок, пока не увидите библиотеку под названием Microsoft Word Object Library. (В название ссылки может быть включен номер версии, например, Microsoft Word 11.0 Object Library.)
-
Убедитесь, что установлен флажок слева от библиотеки объектов.
-
Щелкните ОК.
Преимущество использования макроса для фактического извлечения формул состоит в том, что вы можете настроить именно то, что помещается в документ Word. В случае этого макроса вставляется адрес ячейки, за которым следует символ табуляции, а затем фактическая формула. Вы можете так же легко изменить вставленную информацию на все, что вам нужно в вашем конкретном случае.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (3190) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Pulling_Formulas_from_a_Worksheet [Получение формул из рабочего листа]
.