Этот VBA будет делать то, что вы хотите. Обратите внимание, мой пример смотрел только из ячейки A1
в ячейку A10
- вам нужно обновить это, чтобы отразить то, что вам нужно (диапазон ячеек)!
Если вы не знаете, как это сделать, добавьте разработчика на ленту. В элементах управления нажмите «Вставить» и добавьте кнопку. Добавьте новый макрос. Вставьте следующее внутри подпрограммы ...
Dim i As Integer
i = 1
For Each c In Worksheets("Sheet1").Range("A1:A10").Cells 'UPDATE THIS ROW ONLY WITH THE RANGE YOU WANT TO USE. This loops through all the cells in the range
Dim resultsString As String
resultsString = ""
Dim splitString() As String
splitString = Split(c, "\") ' split the value of the current cell by \
For Each v In splitString
If v <> "" Then 'only check those with a value
Dim numberOfDigits As Integer
numberOfDigits = 0
For charCount = 1 To Len(v)
If IsNumeric(Left(v, charCount)) Then
numberOfDigits = charCount ' read how many characters there are (which are numbers)
End If
Next
If (numberOfDigits > 0) Then
resultsString = resultsString & Left(v, numberOfDigits) & "." 'if there are numbers, then read that number of digits from the left
End If
End If
Next
Dim iLength As Integer
iLength = Len(resultsString)
If (iLength > 0) Then ' if there are any values
Range("B" & i).Value = Left(resultsString, iLength - 1) 'UPDATE THIS ROW ONLY IF YOU WANT TO USE A DIFFERENT COLUMN THAN B TO SHOW RESULTS. This takes the value - 1 character (sicne the last character is a .
End If
i = i + 1
Next
Я добавил экран результатов