Обрезать строку после n символа
NorthPole
Дата: Воскресенье, 06.10.2019, 09:30 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Всем привет, Есть поле поиска на форме куда пользователь вводит строку. Необходимо обрезать введенную строку, вернув пользователю первые 5 "символов" (разделение через пробелы). Пока делаю это через массив, но почему-то не покидает чувство что есть способ проще. [vba]Код
t = "A,B,C D E 04 05 06 07" v = Split(t, " ") t = "" For i = 0 To UBound(v) If i < 5 Then t = t & " " & v(i) Next t = Trim(t) Debug.Print t 'A,B,C D E 04 05
[/vba]
Всем привет, Есть поле поиска на форме куда пользователь вводит строку. Необходимо обрезать введенную строку, вернув пользователю первые 5 "символов" (разделение через пробелы). Пока делаю это через массив, но почему-то не покидает чувство что есть способ проще. [vba]Код
t = "A,B,C D E 04 05 06 07" v = Split(t, " ") t = "" For i = 0 To UBound(v) If i < 5 Then t = t & " " & v(i) Next t = Trim(t) Debug.Print t 'A,B,C D E 04 05
[/vba] NorthPole
Сообщение отредактировал NorthPole - Воскресенье, 06.10.2019, 09:31
Ответить
Сообщение Всем привет, Есть поле поиска на форме куда пользователь вводит строку. Необходимо обрезать введенную строку, вернув пользователю первые 5 "символов" (разделение через пробелы). Пока делаю это через массив, но почему-то не покидает чувство что есть способ проще. [vba]Код
t = "A,B,C D E 04 05 06 07" v = Split(t, " ") t = "" For i = 0 To UBound(v) If i < 5 Then t = t & " " & v(i) Next t = Trim(t) Debug.Print t 'A,B,C D E 04 05
[/vba] Автор - NorthPole Дата добавления - 06.10.2019 в 09:30
Kuzmich
Дата: Воскресенье, 06.10.2019, 11:18 |
Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 714
Репутация:
157
±
Замечаний:
0% ±
Excel 2003
[vba]Код
t = "A,B,C D E 04 05 06 07" v = Split(t, " ", 6) t = Trim(Replace(t, v(5), ""))
[/vba]
[vba]Код
t = "A,B,C D E 04 05 06 07" v = Split(t, " ", 6) t = Trim(Replace(t, v(5), ""))
[/vba] Kuzmich
Ответить
Сообщение [vba]Код
t = "A,B,C D E 04 05 06 07" v = Split(t, " ", 6) t = Trim(Replace(t, v(5), ""))
[/vba] Автор - Kuzmich Дата добавления - 06.10.2019 в 11:18
bmv98rus
Дата: Воскресенье, 06.10.2019, 11:27 |
Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
Kuzmich , Коротко, эффективно, но очень опасно, при повторении текста в строке. Так корректнее будет [vba]Код
t = Left(t, Len(t) - Len(v(5)) - 1)
[/vba]
Kuzmich , Коротко, эффективно, но очень опасно, при повторении текста в строке. Так корректнее будет [vba]Код
t = Left(t, Len(t) - Len(v(5)) - 1)
[/vba]bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение Kuzmich , Коротко, эффективно, но очень опасно, при повторении текста в строке. Так корректнее будет [vba]Код
t = Left(t, Len(t) - Len(v(5)) - 1)
[/vba]Автор - bmv98rus Дата добавления - 06.10.2019 в 11:27
Kuzmich
Дата: Воскресенье, 06.10.2019, 11:39 |
Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 714
Репутация:
157
±
Замечаний:
0% ±
Excel 2003
Михаил, согласен с вашим замечанием, еще бы надо проверить: есть ли такое количество разделителей в строке?
Михаил, согласен с вашим замечанием, еще бы надо проверить: есть ли такое количество разделителей в строке? Kuzmich
Ответить
Сообщение Михаил, согласен с вашим замечанием, еще бы надо проверить: есть ли такое количество разделителей в строке? Автор - Kuzmich Дата добавления - 06.10.2019 в 11:39
nilem
Дата: Воскресенье, 06.10.2019, 11:53 |
Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
Еще вариант (не самый лучший) [vba]Код
t = "A,B,C D E 04 05 06 07" v = Split(t) ReDim Preserve v(4) t = Join(v)
[/vba]
Еще вариант (не самый лучший) [vba]Код
t = "A,B,C D E 04 05 06 07" v = Split(t) ReDim Preserve v(4) t = Join(v)
[/vba] nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение Еще вариант (не самый лучший) [vba]Код
t = "A,B,C D E 04 05 06 07" v = Split(t) ReDim Preserve v(4) t = Join(v)
[/vba] Автор - nilem Дата добавления - 06.10.2019 в 11:53
RAN
Дата: Воскресенье, 06.10.2019, 11:55 |
Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Еще пара вариантов [vba]Код
Sub qq() Dim spl t = "A,B,C D E 04 05 06 07" v = Split(t, " ", 6) v(5) = "" tt = Trim(Join(v)) spl = Split(t, " ", 6) ReDim Preserve spl(4) ttt = Trim(Join(spl)) End Sub
[/vba]
Еще пара вариантов [vba]Код
Sub qq() Dim spl t = "A,B,C D E 04 05 06 07" v = Split(t, " ", 6) v(5) = "" tt = Trim(Join(v)) spl = Split(t, " ", 6) ReDim Preserve spl(4) ttt = Trim(Join(spl)) End Sub
[/vba] RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Еще пара вариантов [vba]Код
Sub qq() Dim spl t = "A,B,C D E 04 05 06 07" v = Split(t, " ", 6) v(5) = "" tt = Trim(Join(v)) spl = Split(t, " ", 6) ReDim Preserve spl(4) ttt = Trim(Join(spl)) End Sub
[/vba] Автор - RAN Дата добавления - 06.10.2019 в 11:55
bmv98rus
Дата: Воскресенье, 06.10.2019, 11:58 |
Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
и не самый рабочий :-) помнится есть проблема с возможностью ReDim Preserve v(4) без определения [vba]Код
Dim v t = "A,B,C D E 04 05 06 07" v = Split(t, " ") ReDim Preserve v(4) t = Join(v) Debug.Print t
[/vba] Собственно RAN уже накидал, только там или лишнее для записи или расчет на большой объем ибо ограничивать SPLIT до 6 смысл очень мал.
и не самый рабочий :-) помнится есть проблема с возможностью ReDim Preserve v(4) без определения [vba]Код
Dim v t = "A,B,C D E 04 05 06 07" v = Split(t, " ") ReDim Preserve v(4) t = Join(v) Debug.Print t
[/vba] Собственно RAN уже накидал, только там или лишнее для записи или расчет на большой объем ибо ограничивать SPLIT до 6 смысл очень мал.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Воскресенье, 06.10.2019, 12:07
Ответить
Сообщение и не самый рабочий :-) помнится есть проблема с возможностью ReDim Preserve v(4) без определения [vba]Код
Dim v t = "A,B,C D E 04 05 06 07" v = Split(t, " ") ReDim Preserve v(4) t = Join(v) Debug.Print t
[/vba] Собственно RAN уже накидал, только там или лишнее для записи или расчет на большой объем ибо ограничивать SPLIT до 6 смысл очень мал.Автор - bmv98rus Дата добавления - 06.10.2019 в 11:58
RAN
Дата: Воскресенье, 06.10.2019, 12:03 |
Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Миш, какая проблема?
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Миш, какая проблема? Автор - RAN Дата добавления - 06.10.2019 в 12:03
bmv98rus
Дата: Воскресенье, 06.10.2019, 12:09 |
Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
RAN , Андрей, я дописал. Без Dim Не пройдет. а его нет у nilem .
RAN , Андрей, я дописал. Без Dim Не пройдет. а его нет у nilem .bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение RAN , Андрей, я дописал. Без Dim Не пройдет. а его нет у nilem .Автор - bmv98rus Дата добавления - 06.10.2019 в 12:09
nilem
Дата: Воскресенье, 06.10.2019, 12:19 |
Сообщение № 10
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
[offtop]у nilem и Sub нет )[/offtop]
[offtop]у nilem и Sub нет )[/offtop] nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение [offtop]у nilem и Sub нет )[/offtop] Автор - nilem Дата добавления - 06.10.2019 в 12:19
NorthPole
Дата: Воскресенье, 06.10.2019, 16:03 |
Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Ок, спасибо за примеры, попробую прикручить что-нить.
Ок, спасибо за примеры, попробую прикручить что-нить. NorthPole
Ответить
Сообщение Ок, спасибо за примеры, попробую прикручить что-нить. Автор - NorthPole Дата добавления - 06.10.2019 в 16:03