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

エクセル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 に答える