Имею некоторые исходные данные: по строкам названия уровня, по столбцам названия кварталов и месяцов, на пересечении значения
Знаю (предполагаю), что ячейка со значением в свойстве .Text хранит запись похожую на - 1000,500 ТТ (или Т/м3) - единицы измерения. В примере только ТТ. Хочу при помощи макроса обратиться к ячейкам расположенным на пересечении строк и 2го столбца и из свойства Text ячейки вытащить единицы измерения, т.е. эти 1-2 буквы (Т, ТТ, м3) в столбец следующий после последнего столбца таблицы.
Sub test()
For i = 7 To Cells(Rows.Count, 1).End(xlUp).Row
t = Cells(i, 2)
Dim REGEXP As Object
Set REGEXP = CreateObject("VBScript.RegExp")
REGEXP.IgnoreCase = True
REGEXP.Global = False
REGEXP.MultiLine = True
REGEXP.Pattern = "Т"
If REGEXP.test(t) Then
Cells(i, 15) = REGEXP.Execute(t)(0)
End If
REGEXP.Pattern = "ТТ"
If REGEXP.test(t) Then
Cells(i, 15) = REGEXP.Execute(t)(0)
End If
REGEXP.Pattern = "м3"
If REGEXP.test(t) Then
Cells(i, 15) = REGEXP.Execute(t)(0)
End If
Next
End Sub
Буквы русские или английские ? ТТ, Т, м3 если что сами поменяете (там русские сейчас)
Sub dfd()
Dim IlastROw As Integer
Dim a As String
Dim b As String
Dim c As String
IlastROw = Cells(Rows.Count, 1).End(xlUp).Row
For Each cell In Range("B7:B" & IlastROw)
a = InStrRev(cell, " ", -1)
b = Len(cell)
c = Right(cell, b - a)
cell.Offset(0, 13) = WorksheetFunction.Trim(c)
Next cell
End Sub
Sub test2()
Dim i&, t$
Static rx As Object
For i = 7 To Cells(Rows.Count, 1).End(xlUp).Row
t = Cells(i, 3)
Set rx = CreateObject("VBScript.RegExp")
rx.IgnoreCase = True
rx.Pattern = "(Т{1,2}|м3)$"
If rx.test(t) Then Cells(i, 15) = rx.Execute(t)(0)
Next
End Sub