这给了我更多的麻烦。
我对excel电子表格发表了评论。我有一个按钮。当用户单击该按钮时,应显示注释。当他们再次点击它时,评论应该消失。这是我正在尝试使用的代码 - 它们都是独立工作的,但是当我输入If Then Else语句时,无论我尝试什么,都会出错:
Sub showcomments()
If Comments <> "Visible" Then Application.DisplayCommentIndicator = xlCommentAndIndicator
Else: Application.DisplayCommentIndicator = xlCommentIndicatorOnly
End If
End Sub
我已经尝试了间距,缩进等所有变体。如果评论=可见,我已经尝试过了。什么似乎都没有用于什么应该是一个如此简单的任务。我经常得到错误“否则没有”,尽管它就在那里。
谢谢:)
答案 0 :(得分:3)
试试这个:
Sub showcomments()
Comments = 1
For Each MyComments In ActiveSheet.Comments
If MyComments.Visible = True Then
Comments = 0
End If
Next
If Comments = 1 Then
Application.DisplayCommentIndicator = xlCommentAndIndicator
Else
Application.DisplayCommentIndicator = xlCommentIndicatorOnly
End If
End Sub
答案 1 :(得分:3)
我想自己在Excel中这样做。如果我没有弄错的话,这对你想要的东西来说非常好,并且不需要循环或额外的全局变量......
Sub showcomments()
If Application.DisplayCommentIndicator = xlCommentIndicatorOnly Then
Application.DisplayCommentIndicator = xlCommentAndIndicator
Else
Application.DisplayCommentIndicator = xlCommentIndicatorOnly
End If
End Sub
答案 2 :(得分:0)
此方法使用全局变量,而不必遍历所有注释。
Public comments As Integer
Sub showcomments()
If comments = 1 Then
Application.DisplayCommentIndicator = xlCommentAndIndicator
comments = 0
Else
Application.DisplayCommentIndicator = xlCommentIndicatorOnly
comments = 1
End If
End Sub
答案 3 :(得分:0)
我使用了另一种我认为更容易的方法:
Sub Show_Hide_Comments(visible As Boolean)
Dim cmnt As Comment
For Each cmnt In ActiveSheet.comments
cmnt.Shape.Visible = visible
Next
End Sub
这将查找所有注释并隐藏其形状。 如果愿意,您甚至可以针对某些评论单独进行操作。