Если вы работаете с листами 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.