Боб спросил, можно ли написать формулу и получить ответ в комментарии, а не в ячейке. Короткий ответ: нет, вы не можете сделать это с помощью формулы. Однако вы можете сделать это с помощью макроса. Например, следующий макрос добавляет содержимое двух ячеек (A1 и B1), а затем вставляет результат в комментарий, прикрепленный к ячейке C1:

Sub MakeComment()

With Worksheets(1).Range("C1").AddComment         .Visible = True         .Text "Total of cell A1 plus cell B1 is equal to " & _           ([A1].Value) + ([B1].Value)

End With End Sub

Если вы предпочитаете запускать макрос для диапазона ячеек, тогда необходим другой подход. Следующие макроциклы проходят через все ячейки в выделенной области. Если ячейка содержит формулу, макрос помещает значение (результат формулы) в комментарий, прикрепленный к этой ячейке.

Sub ValueToComment()

Dim rCell As Range     For Each rCell In Selection         With rCell             If .HasFormula Then                 On Error Resume Next                 .Comment.Delete                 On Error GoTo 0                 .AddComment                 .Comment.Text Text:=CStr(rCell.Value)

End If         End With     Next     Set rCell = Nothing End Sub

При циклическом просмотре ячеек в выделенном фрагменте, если в одной из ячеек есть формула и существующий комментарий, этот комментарий удаляется и заменяется новым комментарием, содержащим результат формулы.

После этого будет отображаться значение ячейки, а также комментарий с тем же номером. Вместо CStr вы также можете использовать функцию Format для отображения значения любым удобным для вас способом.

Вы также можете создать макрос, который будет изменять комментарий всякий раз, когда вы обновляете содержимое определенной ячейки. Например, предположим, что каждый раз, когда кто-то вносит изменение в ячейку C11, вы хотите, чтобы результат того, что находится в этой ячейке, помещался в комментарий, прикрепленный к ячейке F15. Следующий макрос делает именно это:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim sResult As String

If Union(Target, Range("C11")).Address = Target.Address Then         Application.EnableEvents = False         Application.ScreenUpdating = False         sResult = Target.Value         Target.ClearContents

With Range("F15")

.ClearComments             .AddComment             .Comment.Text Text:=sResult         End With         Application.EnableEvents = True         Application.ScreenUpdating = True     End If End Sub

Когда кто-то вводит формулу (или значение) в ячейку C11, результаты этой формулы (или само значение) помещаются в комментарий, прикрепленный к ячейке F15. Поскольку это макрос, запускаемый событием, его необходимо ввести в окно кода для рабочего листа, на котором он будет работать.

Наконец, вы можете захотеть, чтобы ваш макрос контролировал весь столбец. Следующий макрос использует событие Change рабочего листа, как и предыдущий макрос. Однако он срабатывает только в том случае, если изменение было внесено в столбец F, и только если была изменена одна ячейка в этом столбце.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub     If Target.Column <> 6 Then Exit Sub

Dim x As String     Application.EnableEvents = False     If Target.HasFormula Then         x = Evaluate(Target.Formula)

Else         x = Target.Text     End If

Target.ClearComments     If Target.Text = "" Then         Application.EnableEvents = True         Exit Sub     End If

Target.AddComment x     Target = ""

Application.EnableEvents = True End Sub

Если пользователь вносит изменения в одну ячейку в столбце F, макрос получает результат того, что было введено, и помещает его в комментарий, прикрепленный к этой ячейке. Затем содержимое ячейки удаляется.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (13038) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Placing_Formula_Results_in_a_Comment [Размещение результатов формулы в комментарии].