У меня ок. 12000 ячеек в Excel, содержащих RTF (включая теги форматирования). Мне нужно их разобрать, чтобы добраться до неформатированного текста.
Это пример одной из ячеек с текстом:
{\rtf1\ansi\deflang1060\ftnbj\uc1
{\fonttbl{\f0 \froman \fcharset0 Times New Roman;}{\f1 \fswiss \fcharset238
Arial;}}
{\colortbl ;\red255\green255\blue255 ;\red0\green0\blue0 ;}
{\stylesheet{\fs24\cf2\cb1 Normal;}{\cs1\cf2\cb1 Default Paragraph Font;}}
\paperw11908\paperh16833\margl1800\margr1800\margt1440\margb1440\headery720\footery720
\deftab720\formshade\aendnotes\aftnnrlc\pgbrdrhead\pgbrdrfoot
\sectd\pgwsxn11908\pghsxn16833\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440
\headery720\footery720\sbkpage\pgncont\pgndec
\plain\plain\f1\fs24\pard TPR 0160 000\par IPR 0160 000\par OB-R-02-28\par}
И все, что мне действительно нужно, это:
TPR 0160 000
IPR 0160 000
OB-R-02-28
Проблема с простым зацикливанием ячеек и удалением ненужного форматирования заключается в том, что не все в этих 12000 ячеек так просто, как это. Поэтому мне пришлось бы вручную проверить много разных версий и написать несколько вариантов; и, тем не менее, в конце еще предстоит много ручной работы.
Но если я копирую содержимое одной ячейки в пустой текстовый документ и сохраняю его как RTF, а затем открываю его с помощью MS Word, он мгновенно анализирует текст, и я получаю именно то, что хочу. К сожалению, для 12000 ячеек это делать крайне неудобно.
Итак, я думал о макросе VBA, чтобы переместить содержимое ячейки в Word, принудительно выполнить синтаксический анализ и затем скопировать результат обратно в исходную ячейку. К сожалению, я не совсем уверен, как это сделать.
У кого-нибудь есть идеи? Или другой подход? Буду очень благодарен за решение или толчок в правильном направлении.
TNX!