найдите слово «год» в ячейке и рассмотрите число перед словом - PullRequest
0 голосов
/ 16 октября 2018

Итак, у меня есть список ячеек, в которых указаны годичные термины, но они не соответствуют определенному порядку, что означает, что «1 год» может быть в начале или «6 лет» в конце.Я использовал VBA ниже, чтобы идентифицировать все ячейки, которые содержат «Year», «Years», «Yr» и «Y», но не уверен, как я могу извлечь число, которое идет раньше, я считаю, что нужно иметь Celloffset 0,2 (так как между числом и термином «год» есть пробел), но не уверен, как настроить код, чтобы не только найти слово, но и рассмотреть 2 позиции перед и поместить в столбец рядом с ним.

Любойпредложение будет высоко ценится!

Sub Sample()
Dim MyAr(1 To 3) As String
Dim ws As Worksheet
Dim aCell As Range, bCell As Range
Dim i As Long

Set ws = ThisWorkbook.Sheets("Sheet1")

MyAr(1) = "year"
MyAr(2) = "years"
MyAr(3) = "Y"

With ws
    '~~> Loop through the array
    For i = LBound(MyAr) To UBound(MyAr)
        Set aCell = .Columns(1).Find(What:=MyAr(i), LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)

        If Not aCell Is Nothing Then
            Set bCell = aCell
            aCell.Interior.ColorIndex = 3

            Do
                Set aCell = .Columns(1).FindNext(After:=aCell)

                If Not aCell Is Nothing Then
                    If aCell.Address = bCell.Address Then Exit Do
                    aCell.Interior.ColorIndex = 3
                Else
                    Exit Do
                End If
            Loop
        End If
    Next
End With
End Sub
...