Страницы: 1
RSS
Как с помощью Split разделить размеры, записанные через разные разделители
 
Что нужно добавить в параметры Split в текущем макросе - чтобы он разделял и 109x60*65 ?
 
мощная задача. сразу и не решишь))
Код
Sub T2()
  Dim a, r&
  For r = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    a = Split(Replace(Replace(Replace(Cells(r, 1), "*", " "), "x", " "), "х", " "))
    Cells(r, 10).Resize(1, UBound(a) + 1) = a
  Next
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, спасибо.

Не сможете подсказать, почему в этом примере не работает Split, если аргументы ей через свою функцию передать
Изменено: Marat Ta - 07.03.2021 13:38:10
 
конвертируйте передаваемые параметры в String - сработает
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
109x60*65
А кто-то напишет хХ в русской или латинской транскрипции или с пропусками 109 x 60 * 65
Поэтому мне кажется, что лучше применить регулярки
Код
Sub iRazner()
Dim i As Long
Dim mo As Object
Dim n As Integer
 With CreateObject("VBScript.RegExp")
     .Global = True
     .Pattern = "\d+"
For i = 2 To 7
   If .test(Cells(i, 1)) Then
     Set mo = .Execute(Cells(i, 1))
     For n = 0 To mo.Count - 1
       Cells(i, 2 + n) = Val(mo(n))
     Next
   Else
     Cells(i, 2) = ""
   End If
Next
 End With
End Sub
Страницы: 1
Наверх