我正在尝试清除包含评论的整行单元格。所以我想要包含评论的最后一个活动行号。
我用过
LastRow = Worksheets("Sheet1").Cells(Worksheets("Sheet1").Rows.Count, "B").End(xlUp).Row
但这会返回包含值的最后一个行号。如果我的单元格只有注释但没有值,那么它不会给出最后一个行号。
也欢迎任何清除整栏的单元格注释的替代建议。
提前致谢。
我的清除价值的代码如下。我也想澄清这些意见。
Sub columnClear()
Dim LastRow As Long
Dim i As Long
LastRow = Worksheets("Sheet1").Cells(Worksheets("Sheet1").Rows.Count, "B").End(xlUp).Row
For i = 3 To LastRow
Worksheets("Sheet1").Cells(i, 2).Value = Empty
Next
End Sub
答案 0 :(得分:1)
试试这个:
LastRow = Worksheets("Sheet1").Comments(Worksheets("Sheet1").Comments.Count).Parent.Row
这是整张表的最后评论,但我希望没问题。
答案 1 :(得分:0)
您不必在循环中单独清除内容或注释:
Dim ws1 As Worksheet
Set ws1 = Worksheets("Sheet1")
With ws1
ws1.Range(.Cells(3, 2), .Cells(lastRow, 2)).Clear
'clears content, comments and formatting
'or .ClearContents, .ClearComments
End With
您还可以获取范围内所有评论的Range
参考:
Set rngComments = Range("B:B").SpecialCells(xlCellTypeComments)
可能有一种方法可以从中提取最后一个注释的行,否则您可以遍历此范围以查找最大行数。
Dim rngComments As Range
Dim rng As Range
Dim lLastComment As Long
Set rngComments = Range("B:B").SpecialCells(xlCellTypeComments)
For Each rng In rngComments
If rng.Row > lLastComment Then
lLastComment = rng.Row
End If
Next rng
MsgBox "Last comment row for B is " & lLastComment