Baria, можно. Вот немного доработал функцию АндреяVG, в качестве второго параметра указываете атрибут тега, который надо сохранить:
Код |
---|
Public Function onlyTextWithAttributeValue(ByVal textVal As String, ByVal attributeToSave As String) As String
Dim pReg As Object
Set pReg = CreateObject("VBScript.RegExp")
pReg.Global = True: pReg.Pattern = "<.+" & attributeToSave & "\=" & Chr(34) & "([^" & Chr(34) & "]*).*>"
textVal = Replace$(Replace$(textVal, "<", "<"), ">", ">")
onlyText = Application.Trim(pReg.Replace(textVal, "$1"))
End Function
|
Правда, учтите, что функция будет чистить только теги, в которых есть заданный атрибут и ему присвоено значение (атрибуты типа readonly без знака равно и значения в кавычках не будут учитываться).
В теории, можно вообще довести регулярное выражение до идеала, но лично мне проще использовать несколько регулярных выражений или даже функций, чем ломать мозг над каждым возможным символом, собирая комплексную задачу в одно регулярное выражение.
В итоге у Вас должно получиться что-то вроде формулы: =onlyText(onlyTextWithAttribute(A1; "label"))