我有一个非常大的excel文件,在不同的单元格上有数百个笔记。我想提取每行的注释内容并将它们放在自己的列中。例如,如果我在第1行中有3个注释,则这些注释中的文本将放在U1中。如果在第2行中有4条评论,则这4条评论将在U2中,因此一条评论。到目前为止,我正在使用VBA执行此操作,但是无法让它们按行分开。
Sub CopyCommentsToCol()
Dim i As Integer
i = 2
Dim Rng As Range
Dim cell As Range
Dim row As Range
Dim commrange As Range
Dim curwks As Worksheet
Set Rng = Range("A2:A5") 'Test Range for now
Set curwks = ActiveSheet
On Error Resume Next
Set commrange = curwks.Cells _
.SpecialCells(xlCellTypeComments)
On Error GoTo 0
On Error Resume Next
If Err.Number <> 0 Then
Err.Clear
End If
For Each row In Rng.Rows
For Each cell In commrange 'Application.ActiveCell.Comment
If cell.Comment <> Empty Then
Range("$U$" & i) = Range("$U$" & i).Text & cell.Comment.Text
End If
Next cell
i = i + 1
Next row
End Sub
此vba代码目前将所有笔记放在我指定的测试范围内。不只是他们自己行中的笔记。我理解我的错误,内部for循环遍历整个工作表。我只是不知道如何解决这个问题。
修改
For Each row In Rng.Rows
Set commrange = row.SpecialCells(xlCellTypeComments)
For Each cell In commrange
If cell.Comment <> Empty Then
Range("$U$" & i) = Range("$U$" & i).Text & cell.Comment.Text
End If
Next cell
i = i + 1
Next row
答案 0 :(得分:2)
您可以使用RETRY
集合。像
Rows
更新:
由于第一个想法不起作用,您可以检查For Each row In yourRange.Rows
'collect comments
Next row
并在单元格中添加文本时使用它。
cell.Row