Я пытаюсь написать скрипт VBA, который проходит через столбец ячеек и один, подчеркивает текст между тегами html <u></u>
и два, затем удаляет эти теги из текста. Ячейки могут иметь несколько тегов внутри, другой текст, следующий за ними, или вообще не иметь тегов.
До сих пор мне удавалось заставить скрипт подчеркивать между тегами, но когда я пытаюсь удалить их, на самом деле ничего не работает (иногда ничего не меняется, иногда тег подчеркивается и т. Д.). Я опускаю примеры ввода / вывода для краткости и в надежде, что в моем коде есть явно очевидные проблемы, но они доступны по запросу.
Попытка решить эту проблему с помощью VBA изначально связана с невозможностью сделать это в Python, поскольку объектная модель работает только с ячейками, а не с содержимым ячейки. Любые решения, использующие Python для этого, также приветствуются!
Большое спасибо за помощь! Дайте мне знать, могу ли я чем-нибудь помочь вам всем!
Sub PleaseUnderline()
'Holds the content between the tags
Dim s As String
'Holds the row number of the active cell
Dim a As Integer
'Holds the location of the beginning of the open tag
Dim b As Integer
'Holds the location of the beginning of the close tag
Dim e As Integer
Dim holder As String
'Select the last cell in column A and make it the active cell
Range("A" & ActiveCell.SpecialCells(xlLastCell).Row).Select
For a = ActiveCell.Row To 1 Step -1
Range("A" & a).Select
holder = Range("A" & a).Value
s = ""
b = 1
e = 1
Do
b = InStr(b, ActiveCell, "<u>")
If b = 0 Then Exit Do
e = b + 1
e = InStr(e, ActiveCell, "</u>")
If e = 0 Then
Exit Do
Else
s = Mid(ActiveCell, b + 3, e - b - 3)
End If
holder = Replace(holder, "<u>", "", 1, 1)
holder = Replace(holder, "</u>", "", 1, 1)
Worksheets("Sheet").Range("A" & a).Value = holder
ActiveCell.Characters(b, Len(s)).Font.Underline = True
b = e + 1
Loop
Next a
End Sub