У Гектора есть большой рабочий лист, содержащий примерно 600 строк и 70 столбцов. По этим 43 000 ячеек разбросано около 200 ячеек с комментариями. Гектор хочет извлечь комментарии и поместить их в ячейки справа от основной части таблицы данных. Если, например, комментарий прикреплен к ячейке C43, то он хочет, чтобы текст из этого комментария оказался в ячейке CC43, а исходный комментарий был удален.

Вы могли подумать, что можете использовать Специальную вставку для выполнения задачи, но это не сработает. Если вы скопируете исходные ячейки и затем воспользуетесь 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.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2981) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:

link: / excelribbon-Copying_Comments_to_Cells [Копирование комментариев в ячейки].