我在Excel中创建一个滚动列表(使用ActiveX滚动条和OFFSET方法)。我的目标是为此列表中的每个单元格生成评论。每个评论应该包含它所连接的单元格的确切内容。我将使用我为其分配代码的按钮生成注释。我先点击按钮(它会生成评论),然后我滚动滚动条。我想要的是,在滚动滚动条后,我不必再次单击该按钮。换句话说,在我滚动后,我希望评论自动调整。这说,我有一个问题。虽然我能够为静态项目生成评论,但无论何时在列表中向上或向下滚动,评论都不会更新(即,如果为单元格C5生成的注释是“Hello World”,当我向下滚动单元格C5的注释时即使单元格C5的内容已更改,仍然会是“Hello World”)。这里是我到目前为止的代码:产生滚动列表包含单元格内容的评论与VBA
Private Sub Create_Comments()
'src refers to the cells for which we will generate comments
Dim src As Range: Set src = Range("C5:C14")
'tar refers to the cells where the comments will be generated
Dim tar As Range: Set tar = Range("C5:C14")
For i = 0 To src.Rows.Count - 1
Dim sResult As String
sResult = Cells(src.Row + i, src.Column)
If sResult <> "" Then
With Cells(tar.Row + i, tar.Column)
.ClearComments
.AddComment
.Comment.Text Text:=sResult
.Comment.Shape.ScaleWidth 4, msoFalse, msoScaleFromTopLeft
.Comment.Shape.ScaleHeight 2.26, msoFalse,soScaleFromTopLeft
End With
Else: sResult = ""
Exit Sub
End If
Next i
End Sub
任何洞察到为什么这不起作用,将不胜感激!我正在使用Excel 2007.
谢谢!
Create_Comments从哪里调用? – SteveES
我只是将Create_Comments赋值给一个按钮。这样,我所要做的就是按下工作表上的按钮并运行代码。 – YesHelloThisIsDog
1.只需确定 - 滚动滚动条,然后单击一个单独的按钮来更新评论? 2.为什么第二行代码是必需的? – SteveES