Это можно сделать с помощью регулярных выражений.Вы сопоставите данные, которые хотите удалить, и замените эти данные пустой строкой.
Поскольку вы не предоставили никакого кода, все, что я могу вам сделать, - это предоставить вам функцию, которую вы можетевнедрить в свой проект.Эта функция может использоваться в VBA или в качестве функции рабочего листа, например =ReplaceFloatingIntegers(A1)
.
. Вам нужно будет добавить ссылку в Microsoft VBScript Regular Expressions 5.5
, перейдя Инструменты , Ссылки в меню VBE.
Function ReplaceFloatingIntegers(Byval inputString As String) As String
With New RegExp
.Global = True
.MultiLine = True
.Pattern = "(\b\d+\b\s?)"
If .Test(inputString) Then
ReplaceFloatingIntegers = .Replace(inputString, "")
Else
ReplaceFloatingIntegers = inputString
End If
End With
End Function
Разбивка шаблона
( ... )
Это группа захвата.Все, что захвачено в этой группе, можно будет заменить функцией .Replace()
. \b
Это граница слова.Мы используем это, потому что мы хотим тестировать от края до края любых «слов» (которые включают слова, которые содержат только цифры в нашем случае). \d+\b
Это будет соответствовать любой цифре (\d
)от одного до неограниченного числа +
раз, до границы следующего слова \b
\s?
будет соответствовать одному символу пробела, но необязательно ?
, если этот символ существует
Вы можете просмотреть эту персонализированную страницу Regex101 , чтобы увидеть, насколько это соответствует вашим данным.Все, что соответствует здесь, заменяется пустой строкой.