Да, вы можете показать результат формул (т.е. значение ячейки) выбранной ячейки в своем комментарии.
Если вы поместите это в кодовый модуль рабочих листов , он покажетзначение каждой выбранной ячейки в качестве комментария.Если вы выберете другую ячейку, предыдущий комментарий будет удален.Помните: если вы будете использовать обычные комментарии дополнительно, они будут удалены с помощью этого кода.
Вы можете ограничить эту функциональность, например, заранее заданным диапазоном на вашем рабочем листе или ячейками с формулами (см. Пояснения в коде).
Option Explicit
Private cmt As Comment
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim MonitoredCells As Range
Dim c As Range
' Comments are shown as red triangle, all hidden by default:
Application.DisplayCommentIndicator = xlCommentIndicatorOnly
' Delete previous comment, if any
If Not cmt Is Nothing Then cmt.Delete
' limit this functionality to e. g. columns A:C by this:
Set MonitoredCells = Intersect(Target, Target.Parent.Range("A:C"))
If Not MonitoredCells Is Nothing Then
Set c = MonitoredCells(1) ' Do it for the first selected cell only
' limit this functionality to cells with formulas:
If c.HasFormula Then
If c.Comment Is Nothing Then
Set cmt = c.AddComment
Else
Set cmt = c.Comment
End If
cmt.Text Text:=CStr(c.Value)
c.Comment.Visible = True
End If
Set c = Nothing
End If
End Sub
Если формула ячейки содержит переводы строк в формате CHAR (10), попробуйте изменить размер комментария следующим образом:
cmt.Shape.TextFrame.AutoSize = True
Если комментарий с автоматическим изменением размера занимает только одну строку, то выполняется автоматический выбор размера комментария.не полезноВ этом случае вы можете расширить его размер, следуя формуле перед его отображением.Размер по умолчанию составляет 100,8 х 72 балла.Далее удваивает ширину и увеличивает высоту приблизительно до необходимого количества символов, но по крайней мере до высоты по умолчанию:
cmt.Shape.Width = 200
cmt.Shape.Height = WorksheetFunction.Max(72, 0.35 * cmt.Shape.TextFrame.Characters.Count)