Здраствуйте. Сегодня мы изучим возможность извлечения текста из примечания в ячейку Excel. Может случиться ситуация, когда Вам предоставили файл, где нужные сведения содержатся не в самих ячейках, а в примечаниях к ним. К примеру, Ваш руководитель оставил свои комментарии по прогнозу объема продаж в виде примечаний и Вам нужно сделать сравнение между тем прогнозом, что сделали Вы и Ваш руководитель. Можно конечно руками перебить все значения из примечаний в ячейки, но если таких случаев много – тогда наша инструкция придет на помощь.
К сожалению, встроенной формулы в Экселе на этот случай нет, но нам поможет Visual Basic for Application. В пошаговой инструкции я расскажу Вам, как создать пользовательскую функцию и как ее использовать. Итак, пункт первый:
1.Создание пользовательской функции
Ее создание, аналогично созданию макроса в VBA, поэтому проделайте многим знакомые операции:
- Нажмите Alt+F11. Должен открыться редактор Microsoft Visual Basic for Application
- Создайте новый модель. Для этого зайдите в меню Insert и выберите пункт Module.
- В открывшийся модель вставьте код пользовательской функции:
Function Get_Text_from_Comment(rCell As Range) As String
Dim sTxt As String
Application.Volatile True
On Error Resume Next
sTxt = rCell.Comment.Text
Get_Text_from_Comment = Mid(sTxt, InStr(sTxt, «:») + 2)
End Function
2.Использование пользовательской функции
- Перейдите назад в книгу Excel.
- Выделите любую свободную ячейку и вызовите мастер вставки функции
- Перейдите в категорию «Определенные пользователем», выберите функцию Get_Text_from_Comment и нажмите Ок.
- Далее укажите ту ячейку, которая содержит комментарий и нажмите Ок.
Готово. Мы получили текст из примечания в ячейку.
Важное замечание: Если Вы изменили текст примечания, то нажмите после этого F9, для того что бы обновилось содержание ячейки в соответствии с корректировкой примечания.
Не забывайте оставлять Ваши комментарии. Они очень важны для нас.
Хитрости »
24 Май 2011 46279 просмотров
Как получить текст примечания в ячейку?
Есть таблица по платежам. В ячейках определенных столбцов в примечаниях(вкладка Рецензирование —Создать примечание) записывается дополнительная информация по платежу. Например, номер договора, на основании которого был произведен платеж. И теперь необходимо отобрать записи только по определенным договорам. Ячеек несколько сотен, просматривать и выписывать договора из комментариев вручную похоже на одну из разновидностей древнеримских пыток. Однако при помощи VBA сделать это совсем просто.
Создадим простую функцию пользователя:
Function Get_Text_from_Comment(rCell As Range) On Error Resume Next Get_Text_from_Comment = rCell.Comment.Text End Function
Синтаксис вызова функции с листа Excel:
=Get_Text_from_Comment(A1)
A1 — ячейка с примечанием, текст которого необходимо получить. Если комментарий в ячейке отсутствует, то функция вернет пусто.
Чтобы правильно использовать приведенный код, необходимо сначала ознакомиться со статьей Что такое функция пользователя(UDF)?. Вкратце: необходимо скопировать текст кода выше, перейти в редактор VBA(Alt+F11) -создать стандартный модуль(Insert —Module) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций, отыскав её в категории Определенные пользователем (User Defined Functions).
Текст из примечания без автора примечания
Слегка доработанная функция, в которой можно отсечь имя пользователя, создавшего комментарий:
Function Get_Text_from_Comment(rCell As Range) As String Dim sTxt As String On Error Resume Next sTxt = rCell.Comment.Text Get_Text_from_Comment = Mid(sTxt, InStr(sTxt, ":") + 2) End Function
Синтаксис вызова с листа Excel такой же, как и в функции выше. Просто указываете внутри функции ссылку на ячейку.
=Get_Text_from_Comment(A1)
Код записи текста примечаний в выделенных ячейках
Если текст из примечаний необходимо записать в те же ячейки одним махом и удалить после этого все примечания, можно использовать следующий код:
'--------------------------------------------------------------------------------------- ' Author : The_Prist(Щербаков Дмитрий) ' Профессиональная разработка приложений для MS Office любой сложности ' Проведение тренингов по MS Excel ' http://www.excel-vba.ru ' Purpose: Процедура записи текста из примечаний в ячейки выделенного диапазона '--------------------------------------------------------------------------------------- Sub CommentsToCell() Dim sTxt As String, res As String, rc As Range, rr As Range Dim IsDelAuthor As Boolean, IsDelComment As Boolean, IsReplaceCellVal As Boolean 'запрашиваем параметры If MsgBox("Оставлять автора комментария?", vbQuestion + vbYesNo, "www.excel-vba.ru") = vbNo Then IsDelAuthor = True End If If MsgBox("Заменять значение, если в ячейке с комментариями уже есть текст?" & vbNewLine & _ "ДА(Yes) - значения ячеек будут заменены текстом комментариев" & vbNewLine & _ "НЕТ(No) - к имеющимся значениям будет добавлен текст комментария", vbQuestion + vbYesNo, "www.excel-vba.ru") = vbYes Then IsReplaceCellVal = True End If If MsgBox("Удалять комментарии после обработки?", vbQuestion + vbYesNo, "www.excel-vba.ru") = vbYes Then IsDelComment = True End If On Error Resume Next 'получаем в выделенном диапазоне только ячейки с комментариями Set rr = Selection.SpecialCells(xlCellTypeComments) If rr Is Nothing Then MsgBox "В выделенном диапазоне нет ячеек с комментариями", vbCritical, "www.excel-vba.ru" Exit Sub End If On Error GoTo 0 Application.ScreenUpdating = False 'цикл по всем ячейкам с комментариями For Each rc In rr.Cells sTxt = rc.Comment.Text If IsDelAuthor Then res = Mid(sTxt, InStr(sTxt, ":") + 2) Else res = sTxt End If If IsReplaceCellVal Then rc.Value = res Else rc.Value = rc.Value & Chr(10) & res End If Next If IsDelComment Then rr.ClearComments End If Application.ScreenUpdating = True MsgBox "Комментарии записаны", vbCritical, "www.excel-vba.ru" End Sub
Код необходимо так же скопировать и вставить в стандартный модуль(Переходим в редактор VBA(Alt+F11) —Insert —Module).
Выделить диапазон ячеек, комментарии из которых необходимо перенести, нажать Alt+F8 и выбрать код CommentsToCell. Код содержит несколько параметров:
- Сначала необходимо будет выбрать оставить ли автора комментария при считывании текста из комментария. Если выбрать да — весь текст примечания будет перенесен как есть. Если выбрать Нет — то из комментария будет отсечена первая строка до символа двоеточия(:). Именно так по умолчанию Excel обозначает автора.
Этот параметр нужен, если в ячейках нет автора. - Далее будет запрос: оставить значение в ячейках и дописать к ним текст примечания или заменить существующие значения в ячейке на текст комментария. Может пригодиться, если в ячейках записаны суммы платежей и надо добавить к ним из комментария номер договора, не убирая сами суммы.
- И последний запрос будет: удалять комментарии из ячеек после записи текста из них в ячейки или оставить. Если выбрать да — то после обработки всех выделенных ячеек комментарии будут удалены. Это может пригодиться, если комментариев много. Их удаление может существенно облегчить файл.
Также см.:
Что такое функция пользователя(UDF)?
Как скопировать картинку из примечания?
Создание примечаний
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Добрый день всем! |
|
Sanja Пользователь Сообщений: 14838 |
Можно макросом вытащить примечания в эту-же или другую таблицу Excel. Ну а дальше этот Excel файл добавить в облако Согласие есть продукт при полном непротивлении сторон. |
Пытливый Пользователь Сообщений: 4587 |
Добрый. В файле Excel в принципе это можно сделать макросом. Опять же — надо вытащить примечания, чтобы они превратились в содержание ячеек, или чтобы так и остались примечаниями? За ГуглДок не скажу, не работаю с ними. Кому решение нужно — тот пример и рисует. |
Что значит «макросом»? Я действительно с Excel на вы… для меня это не понятно. Я пытаюсь разобраться и прошу о помощи. Я читала про какие-то стандартные модули, но картинки в голове не сложилось. Помогите более детально предоставить мне решение данного вопроса |
|
Sanja Пользователь Сообщений: 14838 |
Приложите файл-пример (НЕ 1500 строк!) Согласие есть продукт при полном непротивлении сторон. |
HelenMiskova Пользователь Сообщений: 11 |
#6 18.05.2016 15:21:18
Надо чтобы примечания превратились в таблицу, т.е. стали содержанием ячеек. |
||
HelenMiskova Пользователь Сообщений: 11 |
#7 18.05.2016 15:23:44 Sanja,
|
||
Sanja Пользователь Сообщений: 14838 |
#8 18.05.2016 15:36:43
Вам «по-простому» уже ответили — нужен макрос. Макросы, обычно, пишутся для конкретной таблицы. Создайте файл-ПРИМЕР (гранаты замените апельсинами, ФИО министров/президентов на Ивановых) Согласие есть продукт при полном непротивлении сторон. |
||
Sanja, Файл прикрепила, постаралась точно передать то, что у меня есть. |
|
Прикрепленные файлы
|
|
Z Пользователь Сообщений: 6111 Win 10, MSO 2013 SP1 |
#12 18.05.2016 16:25:03
Давненько это было, однако, но мо быть — Старая Планета … «Ctrl+S» — достойное завершение ваших гениальных мыслей!.. |
||
Z Пользователь Сообщений: 6111 Win 10, MSO 2013 SP1 |
#13 18.05.2016 16:59:03
OFF Так, быть может, сразу и сделать заказ на ее выполнение — есть на форуме раздел «Работа»?! Фрилансеры и качество гарантируют, и «секретность», и сроки… «Ctrl+S» — достойное завершение ваших гениальных мыслей!.. |
||
Z,спасибо за такое предложение, но нет, меня не устраивает такой вариант, к сожалению |
|
Z Пользователь Сообщений: 6111 Win 10, MSO 2013 SP1 |
#15 18.05.2016 17:09:22
Какой: #12 или #13?
А спецу для вас «за так» тратить свое рабочее/свободное время — это норма в вашем понимании?!. «Ctrl+S» — достойное завершение ваших гениальных мыслей!.. |
||||
Z, мне кажется форумы и созданы для того, чтобы помогать бесплатно, то есть даром)) Изменено: HelenMiskova — 18.05.2016 17:21:06 |
|
Без макроса не получится. Только если ручками. |
|
Z Пользователь Сообщений: 6111 Win 10, MSO 2013 SP1 |
#18 18.05.2016 17:26:22
Помогать тому, кто сам делает, но у него что-то (малое) не получается и делать за того, кому задача не по силам, все от А до Я — о-о-о-чень большая разница! «Ctrl+S» — достойное завершение ваших гениальных мыслей!.. |
||
Z, Разница конечно имеется, я согласна. Но я не знаю на сколько это трудоемко. Точнее понятия не имею. Если это от А до Я выглядит просто: вам нужно кликнуть туда, потом туда-то, подставить вот это и все получится — не понимаю за что тут платить деньги. А если это занимает какое-то рабочее/свободное/личное время, где надо думать и работать, то конечно такая работа должна оплачиваться. Я же с вами не спорю, я просто пытаюсь понять. |
|
Андрей VG Пользователь Сообщений: 11878 Excel 2016, 365 |
#20 18.05.2016 17:44:54 Доброе время суток
Увы, вам уже написали, что для вашей задачи нужен макрос. Нажми туда-сюда — вы об этом знаете — делать, как вы написали неделю. |
||
Z Пользователь Сообщений: 6111 Win 10, MSO 2013 SP1 |
#22 18.05.2016 17:50:14
Вы, к сожалению, даже в своем «примере» не смогли определить/показать куда, в какой последовательности следует помещать изъятые примечания, к чему их «привязывать» для последующего анализа. Изменено: Z — 18.05.2016 17:55:56 «Ctrl+S» — достойное завершение ваших гениальных мыслей!.. |
||
JeyCi Пользователь Сообщений: 3357 |
#23 18.05.2016 17:55:10
смотреть в приёмах Создание макросов… Изменено: JeyCi — 18.05.2016 17:56:11 чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах) |
||
bedvit Пользователь Сообщений: 2477 Виталий |
#24 18.05.2016 18:39:05 Немного помогу… Вставьте код в стандартный модуль и раскоментируйте строку (уберите апостроф) — какое действие макроса вам нужно (заменить данные в ячейке или добавить к уже имеющимся):
«Бритва Оккама» или «Принцип Калашникова»? |
||
Z Пользователь Сообщений: 6111 Win 10, MSO 2013 SP1 |
#25 18.05.2016 18:42:37
Однако
См. — Прикрепленные файлы
Изменено: Z — 18.05.2016 18:44:01 «Ctrl+S» — достойное завершение ваших гениальных мыслей!.. |
||||
bedvit Пользователь Сообщений: 2477 Виталий |
Z, поэтому и немного «Бритва Оккама» или «Принцип Калашникова»? |
bedvit Пользователь Сообщений: 2477 Виталий |
#27 18.05.2016 18:52:51 На отдельный лист
«Бритва Оккама» или «Принцип Калашникова»? |
||
bedvit Пользователь Сообщений: 2477 Виталий |
#28 18.05.2016 19:13:27 Вариант3: примечания на отдельный лист, в 1-й столбец «отдельная таблица или лист». Не знаю для чего нужны коментарии отдельно от данных, да ещё и в столбец/таблицу, но раз ТС просит — то вот:
«Бритва Оккама» или «Принцип Калашникова»? |
||
Sanja Пользователь Сообщений: 14838 |
#29 18.05.2016 20:14:55 Ну вот и мои 5 копеек
Прикрепленные файлы
Согласие есть продукт при полном непротивлении сторон. |
||
В некоторых случаях нам нужно извлечь содержимое комментариев из ячеек в ячейки для лучшего просмотра или анализа, как показано ниже. Но в Excel нет встроенной функции, которая могла бы помочь с этим. Однако здесь у меня есть несколько уловок, которые помогут вам быстро и легко решить эту проблему.
Извлечь содержимое комментария с помощью определенной функции
Перечислите все содержимое комментариев активного листа или книги с помощью Kutools for Excel
Извлечь содержимое комментария с помощью определенной функции
В Excel нет формулы, которая может извлекать содержимое комментария, кроме Определенной функции.
1. Нажмите Alt + F11 ключи для включения Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, скопируйте и вставьте код в пустой новый модуль.
Код: Извлечь комментарий
Function getComment(xCell As Range) As String
'UpdatebyExtendoffice20180330
On Error Resume Next
getComment = xCell.Comment.Text
End Function
3. Save the code and go back to the sheet you want to extract comment contents, type =getComment(B2) in a cell which will place the comment content at, and press Enter key. Then you can see the comment has been displayed in the cell. You can drag fill handle down to extract comments as you need.
List all comment contents of active sheet or workbook with Kutools for Excel
If you want to list all comment contents of the active sheet or current workbook, the Defined Function is not convenience. But Kutools for Excel’s Create Comment List function can quickly and easily handle this job.
Kutools for Excel, with more than 300 handy functions, makes your jobs more easier. |
After free installing Kutools for Excel, please do as below:
1. click Kutools > More (in the Editing group) > Create Comment List. See screenshot:
2. In the Create Comment List dialog, select the scope you want to list the comment, Active sheet or All sheets, then choose to place the comments in a new workbook or a new sheet of current workbook.
3. click Create. Now all comments have been listed one by one in a sheet.
The Best Office Productivity Tools
Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%
- Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails…
- Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range…
- Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns… Prevent Duplicate Cells; Compare Ranges…
- Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select…
- Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more…
- Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments…
- Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic…
- Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF…
- More than 300 powerful features. Supports Office / Excel 2007-2021 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
Read More… Free Download… Purchase…
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
Read More… Free Download… Purchase…
Comments (17)
No ratings yet. Be the first to rate!
На днях работал с большим файлом, где помимо прочего было множество примечаний. Владельцы файла помнили почти всю информацию, поэтому легко могли найти данные в этом файле, в том числе и в примечаниях. Но я, как человек не знающий файл так хорошо, затруднялся сделать поиск по примечаниям в этом excel файле. В итоге я вспомнил возможность инструмента найти заменить. А так же предложил перевести все примечания в ячейки — т.к. с ними значительно проще работать. Как это сделать читаем далее.
Примечания — довольно интересная возможность табличного редактора. Очень подробно о них вы можете прочитать здесь, в том числе как печатать примечания, добавить картинку и так далее.
Содержание
- Как сделать поиск по примечаниям в Excel?
- Как скопировать примечание в ячейку?
- Похожие статьи
Как сделать поиск по примечаниям в Excel?
Вызываете окно Найти и заменить (ctrl + f), нажимаете кнопку Параметры
В открывшемся поле Область поиска выбираете Примечания, как показано на картинке в заголовке страницы.
Жмете Найти далее или Найти Все — находим нужную информацию.
Вот в принципе и все.
Но! Примечания — это средство рецензирования, а не хранения информации. Поэтому если примечаний много, то их лучше хранить в отдельных ячейках. Что делать если примечаний уже много?
Как скопировать примечание в ячейку?
Чтобы копировать примечания между ячейками вам достаточно просто скопировать ячейку.
Но для того, чтобы скопировать значения примечания ячейки A1 в другую ячейку, например А2, придется это делать руками — т.е. копируем текст примечания и вставляем в ячейку. Как быть если примечаний сотни? Не вручную само собой.
Наверное самое простое — это создать пользовательскую формулу в VBA.
Включаем макросы, заходим в редактор макросов Вкладка Разработчик — Просмотр кода и вставляем в открывшееся окно код по примеру ниже
Function
prim(Ячейка
As
Range)
prim
=
Ячейка
.Resize(1, 1).comment.Text
End
Function
Как видно из маленького кода, мы задаем формулу и присваиваем ей возможность получать комментарий из ячейки.
Теперь в нужную ячейку введите формулу
Такая формула вернет нужное значение примечания, если таких ячеек сотня — протяните формулу как обычно. Со значениями теперь можно сделать все, что вам необходимо.
Не забудьте сохранить файл с поддержкой макросов или двоичной книгой.
Удачи!
Извлечение текста комментариев в ячейку
Добрый день, товарищи! Сегодня поговорим о том, как работать с комментариями в ячейке.
Все мы знаем, что примечание добавляется очень просто — щелчок на ячейке правой кнопкой мыши и выбор пункта «Добавить примечание».
Как быть в случае если текст уже есть (на листе, в файле) и его нужно добавить как комментарий или наоборот — извлечь текст комментариев и поместить их в ячейку на листе?
Добавление комментариев по условию мы рассматривали в этой статье.
Добавление комментария в ячейку с помощью Vba.
Для понимания сначала рассмотрим простой пример добавления комментария. О том как вставлять модули в нашу книгу мы говорили здесь. Далее я буду приводить только примеры кода.
Sub add_comment()
With Worksheets(1).Range(«a2»).AddComment
.Visible = False
.Text «просмотрел » & Date
End With
End Sub
Что происходит в этом случае — на листе 1 в диапазоне ячеек A2 добавляется комментарий, далее зовутся свойства Visible (комментарий будет скрыт до наведения), Text собственно сам текст примечания, параметр Date проставит текущую дату.
После выполнения макроса получится вот это.
Удобно, но как быть если нужно вставить комментарий для нескольких ячеек или области? Изменим код.
Sub add_comments()
For xNum = 1 To 10
Range(«A» & xNum).AddComment
Range(«A» & xNum).Comment.Text Text:=»Комментарий » & xNum
Next
End Sub
Этот код добавит примечание «Комментарий» ко всем ячейкам от А1 до А10.
Извлечение текста комментария в ячейку
Для извлечения текста комментария в ячейку воспользуемся пользовательской функцией.
Function GetComment(rCell As Range) As String
GetComment = rCell.Comment.Text
End Function
Всё максимально просто — объявили функцию, указали свойство, присвоили переменной значение содержащихся в ячейке данных.
Текст ячейки в комментарий
Sub CellTextToComment()
Dim c As Range
If TypeName(Selection) <> «Range» Then Exit Sub
For Each c In Selection
c.Comment.Text Text:=c.Text
Next c
End Sub
Надеюсь, был полезен, товарищи, и извлечение текста комментариев в ячейку не станет для вас проблемой.
Конечно, код можно усовершенствовать — дерзайте! Если что — вот тут хорошая статья, может вам пригодиться.
Всем удачи!
tutorexcel24.09.201724.09.2017 Комментариев нет
Как извлечь текст примечания из ячейки в Excel?
Как извлечь текст примечания из ячейки в Excel?
Поделиться с друзьями:
Поиск по сайту:
- « Предыдущий
Добавить комментарий
Ваш адрес email не будет опубликован.
Комментарий
Имя
Сайт
�������� ������ ������ � Excel
�����������
���������� «����������» ��������� ��������
.
����������� 173
RSS
← �������
→ |
||||||
1 |
||||||
---|---|---|---|---|---|---|
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
�� ��������� 60 ���� �� ���� �� ��������
���� ��������:
http://tutorexcel.ru/
�������:
04-11-2016
�����
tutorX
����������
173 �����������
0 �� ������
- �������
- ����������
←
��� �������
→
|
��� ������� ����� ���������� �� ������ � Excel? ������ ��� ����� ������� ����� ���������� �� ������ � Excel ��� ����������� ��������� � ������� ��������� ������, � ����� �������������� ������ ������ ���������� �� ������. ������ ������…
Copyright � 2017, TutorExcel.Ru — ���� � �������� ������� ������ � Excel. |
� ���������
|
||