هکتور دارای یک کاربرگ بزرگ شامل تقریباً 600 سطر و 70 ستون است. در سراسر این 43000 سلول حدود 200 سلول با نظر پخش شده است. (اینجا درباره چیزی صحبت می کردیم که مایکروسافت اکنون به طور گیج کننده «یادداشت ها» می نامد، اما به طور سنتی «کامنت» نامیده می شود.) هکتور می خواهد نظرات را استخراج کند و آنها را در سلول های سمت راست بدنه اصلی جدول داده قرار دهد. به عنوان مثال، اگر یک نظر به سلول C43 متصل شده باشد، متن آن نظر را مانند هد کنید تا به سلول CC43 ختم شود و نظر اصلی حذف شود.
ممکن است فکر کنید که می توانید از Paste Special برای انجام کار استفاده کنید، اما این کار نمی کند. اگر سلول های اصلی را کپی کنید و سپس از Edit | استفاده کنید چسب ویژه | نظرات، سپس فقط نظرات به سلول های هدف چسبانده می شوند. آنها هنوز کامنت هستند و متنی در سلول نیستند، که برخلاف هدف هکتورز است.
تنها راه برای مدیریت این نوع استخراج استفاده از ماکرو است. موارد زیر، هنگامی که بر روی تعدادی از سلول ها اجرا می شوند، نظرات را استخراج می کنند، متن نظر را منتقل می کنند و سپس نظر اصلی را حذف می کنند.
Sub CommentsToCells()
Dim rCell As Excel.Range
Dim rData As Excel.Range
Dim sComment As String
Horizontal displacement
Const iColOffset As Integer = 78
extract comments from selected range
If TypeName(Selection) = "Range" Then
Set rData = Intersect(Selection, ActiveSheet.UsedRange)
For Each rCell In rData.Cells
On Error Resume Next
sComment = rCell.Comment.Text
If Len(sComment) > 0 Then
rCell.Offset(, iColOffset).Value = sComment
rCell.Comment.Delete
End If
sComment = ""
On Error GoTo 0
Next
End If
End Sub
ماکرو از ثابت iColOffset استفاده می کند تا مشخص کند متن نظر باید چند سلول به سمت راست منتقل شود. در این مورد، افست (78) برابر با سه "الفبا" (26 * 3) است، بنابراین متن یک نظر در ابتدا در ستون C به ستون CC ختم می شود.