Распознать в тексте, написанном в ячейке, надстрочный шрифт, и удалить его - VBA

Узнай цену своей работы

Формулировка задачи:

Делаю в VBA парсер (структуризатор) табличных данных, как правило, числовых. К некоторым числам вставлено примечание примерно в таком виде:

2154)

. А в тяжелых случаях и вот так:

2154

. Если этот надстрочное примечание не удалить, то числовые данные безобразно исказятся в выходной таблице. Как мне через VBA понять, что вот эта часть текста в ячейке написана надстрочным шрифтом, а потому является примечанием и должна быть удалена? Сейчас содержимое листа Excel считывается в 2Д-массив вот так (очевидно, тут форматирование теряется):
Листинг программы
  1. Dim r As Range: Set r = Selection
  2. Dim aV As Variant: aV = r.Value

Решение задачи: «Распознать в тексте, написанном в ячейке, надстрочный шрифт, и удалить его»

textual
Листинг программы
  1. Sub Thor()
  2. Dim r As Range, i&
  3.   On Error GoTo 1
  4.   For Each r In Selection.SpecialCells(xlCellTypeConstants, xlTextValues)
  5.     For i = Len(r) To 1 Step -1
  6.       If r.Characters(i).Font.Superscript Then
  7.         r.Characters(i).Delete
  8.       Else
  9.         Exit For
  10.       End If
  11.     Next
  12.     r.Formula = r.Formula 'преобразование текста в число
  13.  Next
  14. 1 End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы