Автоматическое размещение текста в комментарии (Microsoft Excel)
У Гранта есть ячейка на листе, и когда кто-то начинает печатать в ней, он хотел бы, чтобы все, что они набирали, попало в комментарий, прикрепленный к ячейке. Сама ячейка должна оставаться пустой, но комментарий должен содержать все, что было набрано.
Единственный способ выполнить эту задачу — использовать макрос.
Используя возможности обработчика событий Excel, вы можете создать макрос, который запускается каждый раз при изменении ячейки. Если измененная ячейка является ячейкой, с которой вы хотите связать комментарий, вы можете перенести содержимое ячейки в комментарий и удалить его из самой ячейки. Следующий короткий макрос сделает это:
Private Sub Worksheet_Change(ByVal Target As Range) Dim rCell As Range Dim sTemp As String Set rCell = Range("B4") If Not Intersect(Target, rCell) Is Nothing Then sTemp = rCell.Value rCell.ClearComments If Len(sTemp) > 0 Then Application.EnableEvents = False On Error Resume Next rCell.AddComment rCell.Comment.Text Text:=sTemp On Error GoTo 0 rCell.ClearContents Application.EnableEvents = True End If End If End Sub
Обратите внимание: поскольку это обработчик событий, его необходимо добавить в модуль кода для рабочего листа, на который вы хотите повлиять. В этом случае код перехода к комментарию срабатывает только при внесении изменений в ячейку B4; при желании этот адрес можно изменить в коде.
Следует также отметить, что этот макрос запускается только после того, как пользователь заканчивает вводить что-либо в ячейку B4. Он не запускается, когда пользователь начинает печатать. Таким образом, фактический ввод данных по-прежнему происходит в ячейке B4, а не в самом комментарии. Кроме того, если кто-то вводит что-то в ячейку B4, то любой существующий комментарий теряется, потому что макрос удаляет его перед перемещением содержимого ячейки в комментарий.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (13511) применим к Microsoft Excel 2007, 2010, 2013 и 2016.