0

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

4

2 回答 2

1

尝试这个:

LastRow = Worksheets("Sheet1").Comments(Worksheets("Sheet1").Comments.Count).Parent.Row

这是整张纸上的最后一条评论,但我希望没问题。

于 2013-08-10T11:49:12.103 回答
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
于 2013-08-10T11:44:47.993 回答