Grant在工作表中有一个单元格,当有人开始在该单元格中键入内容时,他希望他们键入的任何内容都以该单元格后面的注释结尾。单元格本身应保持空白,但注释应包含键入的内容。

完成此任务的唯一方法是使用宏。

使用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。