Страницы: 1
RSS
Получить из ячейки свойства .Text определенные значения
 
Добрый день, форумчане.

Имею некоторые исходные данные:
  по строкам названия уровня,
  по столбцам названия кварталов и месяцов,
  на пересечении значения

Знаю (предполагаю), что ячейка со значением в свойстве .Text хранит запись похожую на - 1000,500 ТТ  (или Т/м3) - единицы измерения. В примере только ТТ.
Хочу при помощи макроса обратиться к ячейкам расположенным на пересечении строк и 2го столбца и из свойства Text ячейки вытащить единицы измерения, т.е. эти 1-2 буквы (Т, ТТ, м3) в столбец следующий после  последнего столбца таблицы.

Прошу подсказать как это сделать.
Изменено: АналитикБУ - 12.02.2020 14:49:09
 
Макрос обязательно?
Конкретно для вашего примера формула:
=ПРАВСИМВ(RC[-13];2)
Изменено: Михаил Витальевич С. - 12.02.2020 14:43:23
 
Так в примере только одни ТТ, а где "Т" и "м3" , что там еще ?
 
Михаил Витальевич С., спасибо за формулу, но к сожалению, макрос обязателен.
 
Тезка, это что за расцветочка дизайнерская :-)
Можно еще и так тогда
По вопросам из тем форума, личку не читаю.
 
Разделителем между цифрами и буквами всегда является пробел?
Если да то можно так:

Код
Sub main()
    Dim arr$()
    arr = Split([b7].Value, " ")
    [p7].Value = arr(UBound(arr))
End Sub


Если подойдет, в в цикл своими силами вставьте. При больших объемах можно забрать в массив
Изменено: Nordheim - 12.02.2020 14:52:33
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
Андрей_26 написал:
Так в примере только одни ТТ, а где "Т" и "м3" , что там еще ?
В данном случае представлена часть информации и при обновлении, если значение будет меньше определенного кол-ва, то ТТ смениться на Т.
 
Nordheim, всегда пробел
 
Цитата
БМВ написал:
то за расцветочка дизайнерская :-)
Успел же... :)
Просто промахнулся ;)
 
Код
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 если что сами поменяете (там русские сейчас)
 
Андрей_26, благодарю
 
АналитикБУ, еще вариант
Код
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
Изменено: Mershik - 12.02.2020 15:07:47
Не бойтесь совершенства. Вам его не достичь.
 
И еще:
Код
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
Изменено: aequit - 12.02.2020 15:57:40
Страницы: 1
Наверх