Получите список всех комментариев на листе в Excel

Если вы работаете с листами Excel, которые содержат много комментариев к ячейкам на листе, это руководство может быть полезно. Иногда вы можете вставлять комментарии к ячейкам, чтобы выделить или объяснить данные, или ваш начальник может вставлять комментарии в ячейки, просматривая вашу работу.

Если у вас огромный набор данных, а комментарии разбросаны по всему листу, может помочь собрать все комментарии в одном месте в виде списка.

Получите список всех комментариев на листе

В этом руководстве я покажу вам, как использовать код VBA для получения списка всех комментариев на листе на отдельном листе.

Что-то вроде того, что показано ниже:

В бэкэнде есть код VBA, который выполняет следующие действия:

  • Он проверяет, есть ли на активном листе какие-либо комментарии. Если комментариев нет, то тихонько откланяется и ничего не делает.
  • Если на рабочем листе есть комментарии, он создает новый рабочий лист («Комментарии») и извлекает список всех комментариев в следующей структуре:
    • В столбце A указан адрес ячейки с комментарием.
    • В столбце B указано имя комментатора. Это удобно, если есть несколько рецензентов одного и того же файла. Это также поможет фильтровать / сортировать по имени рецензентов.
    • В столбце C есть комментарий.

Загрузите файл примера

Код VBA

Вот код VBA, который выполняет здесь всю тяжелую работу.

Sub ExtractComments () Dim ExComment As Comment Dim i As Integer Dim ws As Worksheet Dim CS As Worksheet Set CS = ActiveSheet If ActiveSheet.Comments.Count = 0 Then Exit Sub For each ws In Worksheets Если ws.Name = "Comments" Then i = 1 Далее ws Если i = 0 Затем Установить ws = Worksheets.Add (After: = ActiveSheet) ws.Name = "Comments" Иначе: Установить ws = Worksheets ("Комментарии") End If для каждого ExComment в CS.Comments ws. Диапазон ("A1"). Value = "Комментарий в" ws.Range ("B1"). Value = "Комментарий от" ws.Range ("C1"). Value = "Комментарий" С ws.Range ("A1: C1 ") .Font.Bold = True .Interior.Color = RGB (189, 215, 238) .Columns.ColumnWidth = 20 Конец с If ws.Range (" A2 ") =" "Тогда ws.Range (" A2 " ) .Value = ExComment.Parent.Address ws.Range ("B2"). Value = Left (ExComment.Text, InStr (1, ExComment.Text, ":") - 1) ws.Range ("C2"). Value = Right (ExComment.Text, Len (ExComment.Text) - InStr (1, ExComment.Text, ":")) Else ws.Range ("A1"). End (xlDown) .Offset (1, 0) = ExComment.Parent.Address ws.Range ("B1"). End (xlDown) .Offset (1, 0) = Left (ExComment. Текст, InStr (1, ExComment.Text, ":") - 1) ws.Range ("C1"). End (xlDown) .Offset (1, 0) = Right (ExComment.Text, Len (ExComment.Text) - InStr (1, ExComment.Text, ":")) End If Next ExComment End Sub

Как использовать этот код

Есть несколько способов использовать этот код для получения списка комментариев со своего рабочего листа:

# 1 Скопируйте и вставьте данные в файл примера

Скопируйте и вставьте свои данные (как есть) во вкладку «Данные» загружаемого файла, а затем запустите этот макрос.

Чтобы запустить это:

  • Перейдите на вкладку «Разработчик» и нажмите «Макросы». Откроется диалоговое окно макроса.
  • Выберите ExtractComment и нажмите «Выполнить». Убедитесь, что вы находитесь на листе с комментариями, которые вы хотите извлечь.

# 2 Скопируйте и вставьте код в свою книгу

Скопируйте код и вставьте его в книгу, из которой вы хотите извлечь комментарии.

Сделать это:

  • Активируйте книгу, с которой вы работаете, и нажмите Alt + F11. Это откроет окно редактора VB.
  • В Project Explorer слева щелкните правой кнопкой мыши любой из объектов этой книги, выберите Insert -> Module.
  • Вставьте код в окно кода модуля.
  • Закройте окно редактора VB (или нажмите Alt + F11, чтобы вернуться к рабочему листу).

Теперь у вас есть макрос в вашей книге. Чтобы запустить макрос, перейдите на вкладку «Разработчик» -> «Макросы». В диалоговом окне «Макрос» выберите макрос ExtractComment и нажмите «Выполнить».

Примечание: убедитесь, что вы сохранили книгу с .Расширение XLS или .XLSM.

# 3 Создать надстройку

Если вам нужно часто использовать этот код, лучше всего создать на его основе надстройку. Таким образом, вы можете легко использовать его в любой книге (без дополнительных усилий по копированию и вставке кода снова и снова).

Вот как создать надстройку:

  • Перейдите в Файл -> Сохранить как.
  • В диалоговом окне «Сохранить как» измените тип «Сохранить как» на .xlam.
    • Вы заметите, что путь к файлу, в который он сохраняется, автоматически изменяется. Вы можете изменить его, если хотите.
  • Откройте книгу Excel и перейдите в раздел «Разработчик» -> «Надстройки» -> «Надстройки Excel».
  • В диалоговом окне «Надстройки» найдите сохраненный файл и нажмите «ОК».

После активации надстройки вы можете использовать ее в любой книге. Для этого перейдите в «Разработчик» -> «Макросы». В диалоговом окне «Макрос» выберите макрос ExtractComment и запустите его.

Загрузите файл примера

Надеюсь, этот код сэкономит вам время. Сообщите мне свои мысли в разделе комментариев.

Если вы работаете с Excel, VBA может стать вашим сильным союзником. Поднимите свои навыки работы с Excel на новый уровень с курсом Excel VBA.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave