0
我有几张表单,我想阅读每张表单的所有注释。 我设法得到的评论,但我可以得到的是同一行和列的注释单元格的第一个单元格。(附图)VBA - 选择注释单元格时获取第一个单元格
绿色 - 所需的单元格值。
Sub ShowCommentsAllSheets()
'Update 20140508
Dim commrange As Range
Dim rng As Range
Dim ws As Worksheet
Dim newWs As Worksheet
Set newWs = Application.Worksheets("CRs")
newWs.Range("A1").Resize(1, 4).Value = Array("Sheet", "A", "Value", "Comment")
Application.ScreenUpdating = False
On Error Resume Next
For Each ws In Application.ActiveWorkbook.Worksheets
Set commrange = ws.Cells.SpecialCells(xlCellTypeComments)
If Not commrange Is Nothing Then
i = newWs.Cells(Rows.Count, 1).End(xlUp).Row
For Each rng In commrange
i = i + 1
newWs.Cells(i, 1).Resize(1, 4).Value = Array(ws.Name, rng.Address, rng.Value, rng.Comment.Text)
Next
End If
Set commrange = Nothing
Next
newWs.Cells.WrapText = False
Application.ScreenUpdating = True
End Sub
仅供参考 - 如果'newWS'不是ActiveSheet,那么'Rows.Count'将在另一个工作表上运行。你应该(假设你想对'NewWS'中的行进行计数)将行更改为'i = newWs.Cells(newWS.Rows.Count,1).End(xlUp).Row'。你能得到Date单元吗?并想看看如何获得同一行的单元格,在列B? – BruceWayne
你的代码是错误还是错误? @BruceWayne - 同意这是一个很好的做法,但是这实际上很重要,因为每张纸都有相同的行数? – SJR
是的,我设法得到日期单元格,我想获得同一行的单元格。 – David