Итак, у меня есть список ячеек, в которых указаны годичные термины, но они не соответствуют определенному порядку, что означает, что «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