有没有办法在Excel中设置一个variables等于注释的单元格地址?

我想要一些代码,将search工作表的意见,并返回包含特定评论的单元格的地址。

以下是我到目前为止:

Public Sub CommentLocator() Dim Sht As Worksheet Dim cmt As Comment Dim StartCell As Variant Set Sht = Sheet06 For Each cmt In Sht.Comments If cmt.Text = "$StartCell" Then Set StartCell = Range(cmt.Parent.Address) Debug.Print cmt.Parent.Address End If Next cmt End Sub 

问题是这将我的variablesStartCell设置为单元格中包含 。 但是,我想它而不是返回单元格的地址

我试图摆脱Range ,但是这导致“运行时错误13:types不匹配”

我试过在RangeRange(cmt.Parent.Address)之后添加.Address ,但是这会导致“编译错误:参数不可选”“编译错误:对象需要”

我觉得我很接近,但不能完全按照我自己的方式工作。

我真的很感激任何人可以给我这里的帮助。 谢谢。

不要在那里使用Range():

设置StartCell = cmt.Parent

作为一个string:

Startcell = cmt.Parent.Address

就个人而言,我倾向于存储范围对象本身,而不是地址。 但是如果你想要描述的解决scheme,这将工作:

 Public Sub CommentLocator() Dim Sht As Worksheet Dim cmt As Comment Dim StartCell As Variant Set Sht = Worksheets("Sheet06") For Each cmt In Sht.Comments If cmt.Text = "$StartCell" Then StartCell = CStr(cmt.Parent.Address) ' <-- cmt.Parent is already a range object, no need for anything else. You can't use the Set keyword, though. Debug.Print StartCell End If Next cmt End Sub 

要存储范围对象,请改为:

 Public Sub CommentLocator() Dim Sht As Worksheet Dim cmt As Comment Dim StartCell As Range Set Sht = Worksheets("Sheet06") For Each cmt In Sht.Comments If cmt.Text = "$StartCell" Then Set StartCell = cmt.Parent Debug.Print StartCell.Address End If Next cmt End Sub