строки не совпадают - PullRequest
       18

строки не совпадают

0 голосов
/ 27 октября 2018

Имея следующий текст: «CLS (C218) 4 двери купе 10-16 с фиксированными точками».Я должен сохранить в переменной год начала (10) и год окончания (16) в виде строк. Проблема заключается в том, что при запуске следующего кода:

StartYr = Split(Years, "-")(0)

EndYr = Split(Years, "-")(1)

будет StartYr "точки "и EndYr будут пустыми.Как я могу изменить его, чтобы StartYr был "10", а EndYr был "10"?

Ответы [ 4 ]

0 голосов
/ 28 октября 2018

Вы тоже можете это сделать.

Sub test()
    Dim vS, s1, s2
    Dim s  As String
    Dim StartYr As Integer
    Dim EndYr As Integer

    s = "CLS (C218) 4 doors Coupe 10-16 with fixed points"

    vS = Split(s, "-")
    s1 = Split(vS(0))
    s2 = Split(vS(1))

    StartYr = Trim(s1(UBound(s1)))
    EndYr = Trim(s2(LBound(s2)))
    MsgBox StartYr & vbCrLf & EndYr

End Sub
0 голосов
/ 27 октября 2018

, если StartYr и EndYr всегда будут двухзначными числами:

StartYr = Right(Split(Years, "-")(0), 2)
EndYr = Left(Split(Years, "-")(1), 2)
0 голосов
/ 27 октября 2018

Вы также можете использовать эти методы instr и mid ... В этом случае результат даст вам число с двумя длинами, как 10 и 16.

Sub test()
Dim pos As Integer
Dim s, s1, s2 As String

 s = "CLS (C218) 4 doors Coupehhhh 10-16 with fixed points"
pos = InStr(1, s, "-") ' get position of "-"
s1 = Mid(s, pos - 2, 2) 'get 10. find position "-"  come back of two position and take 2 chars
s2 = Mid(s, pos + 1, 2) 'get 16. find position "-" come ahead 1 position and take two chars
End Sub
0 голосов
/ 27 октября 2018

Рассмотрим:

Sub getYears()
    Dim s As String, arr, arr2, a

    s = "CLS (C218) 4 doors Coupe 10-16 with fixed points"

    arr = Split(s, " ")
    For Each a In arr
        If InStr(a, "-") > 0 Then
            arr2 = Split(a, "-")
            MsgBox arr2(0) & vbCrLf & arr2(1)
            Exit Sub
        End If
    Next a
End Sub

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...