powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вырезка середины строки
13 сообщений из 13, страница 1 из 1
Вырезка середины строки
    #34449970
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Делаю небольшую программу и столкнулся с проблемой.
Подскажите, плиз, какой конструкцией покороче вырезать часть текста из такой строки:
467894/1/2

Надо скопировать цифру, расположенную между символами "/". Пока я это делаю так
...
Str1="467894/1/2"
StrDil = Mid(Str1, InStr(Str1, "/") + 1, 1)

Но тут засада. Если вместо "1" будет 2-х, 3-х или более значное число, то получается бред.
Числа слева и справа я смог победить, даже если их размерность меняется, а вот середину "ниасилил"! :)

Все это делаю в Excel 2003.

Спасибо.
...
Рейтинг: 0 / 0
Вырезка середины строки
    #34450150
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37

Код: plaintext
1.
2.
3.
Str1 = "467894/7012/2"
v_FirstOccurrence = InStr( 1 , Str1, "/")
StrDil = Mid(Str1, v_FirstOccurrence +  1 , InStr(v_FirstOccurrence +  1 , Str1, "/") - v_FirstOccurrence -  1 )
Debug.Print StrDil

Тоже самое можно сделать с помощью регулярных выражений
...
Рейтинг: 0 / 0
Вырезка середины строки
    #34450196
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lena_#### Alex37

Код: plaintext
1.
2.
3.
Str1 = "467894/7012/2"
v_FirstOccurrence = InStr( 1 , Str1, "/")
StrDil = Mid(Str1, v_FirstOccurrence +  1 , InStr(v_FirstOccurrence +  1 , Str1, "/") - v_FirstOccurrence -  1 )
Debug.Print StrDil

Тоже самое можно сделать с помощью регулярных выражений
Спасибо! Я только не понял, что значит последняя строка? Для чего она?
Debug.Print StrDil
...
Рейтинг: 0 / 0
Вырезка середины строки
    #34450208
Granata005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Войти в редактор VB и нажми Gtrl+G - появится окошко внизу - там отладочную информацию принято писать прогеру....
...
Рейтинг: 0 / 0
Вырезка середины строки
    #34450212
Granata005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Войти в редактор VB и нажми Gtrl+G - появится окошко внизу - там отладочную информацию принято писать прогеру....
...
Рейтинг: 0 / 0
Вырезка середины строки
    #34450216
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37

Просто выводит в окно отладки значение переменной StrDil. Удаляйте ее нераздумывая раз она Вас смущает. На результат это никак не повлияет.
...
Рейтинг: 0 / 0
Вырезка середины строки
    #34450239
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lena_#### Alex37

Просто выводит в окно отладки значение переменной StrDil. Удаляйте ее нераздумывая раз она Вас смущает. На результат это никак не повлияет.
Теперь понятно! :) Спасибо за помощь!
...
Рейтинг: 0 / 0
Вырезка середины строки
    #34450378
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Str1 = "467894/7012/2"
StrDil = Split(Str1, "/")( 1 )
Visual Basic 6.0 и далее
...
Рейтинг: 0 / 0
Вырезка середины строки
    #34450541
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deggasad
Код: plaintext
1.
Str1 = "467894/7012/2"
StrDil = Split(Str1, "/")( 1 )
Visual Basic 6.0 и далее
Про команду Split знаю, пытался применять её, но Ексель на неё ругался. Применить не удалось. Хотя в Ексель 2003 - это уже VB v6.3.
Но ещё раз попробую, может где-то в строке ошибка у меня была.
Ещё раз спасибо.
...
Рейтинг: 0 / 0
Вырезка середины строки
    #34450670
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex37 Deggasad
Код: plaintext
1.
Str1 = "467894/7012/2"
StrDil = Split(Str1, "/")( 1 )
Visual Basic 6.0 и далее
Про команду Split знаю, пытался применять её, но Ексель на неё ругался. Применить не удалось. Хотя в Ексель 2003 - это уже VB v6.3.
Но ещё раз попробую, может где-то в строке ошибка у меня была.
Ещё раз спасибо.

У меня работает! Split массив возвращает может неправильно к массиву обращался!
Попробуй, то что у меня ввести или так ещё
Код: plaintext
1.
2.
3.
4.
5.
Dim Str1 As String, x As Variant, StrDil As String
Str1 = "467894/7012/2"
x = Split(Str1, "/")
StrDil = x( 1 )
Debug.Print StrDil
...
Рейтинг: 0 / 0
Вырезка середины строки
    #34451113
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deggasad Alex37 Deggasad
Код: plaintext
1.
Str1 = "467894/7012/2"
StrDil = Split(Str1, "/")( 1 )
Visual Basic 6.0 и далее
Про команду Split знаю, пытался применять её, но Ексель на неё ругался. Применить не удалось. Хотя в Ексель 2003 - это уже VB v6.3.
Но ещё раз попробую, может где-то в строке ошибка у меня была.
Ещё раз спасибо.

У меня работает! Split массив возвращает может неправильно к массиву обращался!
Попробуй, то что у меня ввести или так ещё
Код: plaintext
1.
2.
3.
4.
5.
Dim Str1 As String, x As Variant, StrDil As String
Str1 = "467894/7012/2"
x = Split(Str1, "/")
StrDil = x( 1 )
Debug.Print StrDil

Пришел домой, сразу проверил. Работают оба варианта! Выбрал первый - он короче. :)
Я неправильно этим оператором пользовался, константа vbTextCompare должна быть равна 1, (Performs a textual comparison). А я её вообще не указывал. Поэтому ошибка и вылетала...
Спасибо!
...
Рейтинг: 0 / 0
Вырезка середины строки
    #34454129
Volder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex37
Все это делаю в Excel 2003.

можно формулой
=ПСТР(B3;НАЙТИ("/";B3;1)+1;НАЙТИ("/";ПСТР(B3;НАЙТИ("/";B3;1)+1;1000);1)-1)
...
Рейтинг: 0 / 0
Вырезка середины строки
    #34454408
Alex37
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Volder Alex37
Все это делаю в Excel 2003.

можно формулой
=ПСТР(B3;НАЙТИ("/";B3;1)+1;НАЙТИ("/";ПСТР(B3;НАЙТИ("/";B3;1)+1;1000);1)-1)
Вне на VBA надо было, но спасибо и за эту подсказку. Сохраню пример. Пригодится...
Всем спасибо за помощь. Прогу закончил. Все работает отлично!
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вырезка середины строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]