Вы можете использовать регулярные выражения для замены конечных чисел. Используйте шаблон "\s\d+$"
, чтобы избавиться от пробелов в конце.
Option Explicit
Public Sub test()
Debug.Print GetString("Medium Racer Back Top And Short Lounge Set 7091")
End Sub
Public Function GetString(ByVal inputString As String) As Variant
With CreateObject("vbscript.regexp")
.Global = True
.MultiLine = True
.IgnoreCase = True
.Pattern = "[^\s]\d+$" '<== \s\d+$ '<==to remove white space at end as well
If .test(inputString) Then
GetString = .Replace(inputString, vbNullString)
Else
GetString = inputString
End If
End With
End Function
Используется как пользовательская функция на листе:
Regex:
Попробуйте
[^\s]\d+$
Соответствует одному символу, отсутствующему в списке ниже [^ \ s]
\s
соответствует любому пробелу (равен [\ r \ n \ t \ f \ v])
\d+
соответствует цифре (равно [0-9])
+
Квантификатор - сопоставляет от одного до неограниченного количества раз, столько раз, сколько возможно, возвращая при необходимости (жадный)