有没有办法在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不匹配” 。
我试过在Range
或Range(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