需要包含注释的最后一行编号

时间:2013-08-10 08:06:30

标签: excel vba comments

我正在尝试清除包含评论的整行单元格。所以我想要包含评论的最后一个活动行号。 我用过 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

Excel ss

2 个答案:

答案 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