私は、非常に大きなエクセルファイルを持ち、さまざまなセルに数百のノートがあります。私は各行のノートの内容を抽出して、それをそれぞれの列に入れたいと思います。たとえば、1行目に3つの音符がある場合、それらのコメントのテキストはU1となります。 4つのコメントが2行目にあった場合、それらの4つのコメントはU2にもあります。私は今までこれを行うためにVBAを使用していますが、行ごとに分けることに問題があります。Excelで行ごとにメモを転送する
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コードは現在、指定されたテスト範囲にすべてのノートを置きます。自分の行のメモだけではありません。私はここで私のエラーを理解し、インナーループはシート全体を通過しています。私はちょうどこの問題を解決する方法を知らない。
EDIT
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
トランスポーズをコピーして貼り付けますか? – mjsqu
どうやってコメントを1つの行にコピーするのですか? – McD
すごく遅いです。あなたがこれまで試みてきたVBAを投稿したなら、多分それは助けになるかもしれません。コメントと対話するときにマクロを記録し、生成されたコードを確認してください。 – mjsqu