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

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

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

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

2154)

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

2154

. Если этот надстрочное примечание не удалить, то числовые данные безобразно исказятся в выходной таблице. Как мне через VBA понять, что вот эта часть текста в ячейке написана надстрочным шрифтом, а потому является примечанием и должна быть удалена? Сейчас содержимое листа Excel считывается в 2Д-массив вот так (очевидно, тут форматирование теряется):

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

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

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


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

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

9   голосов , оценка 4.333 из 5
Похожие ответы