![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Loskutov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 12.9.2007 Репутация: нет Всего: нет |
Проблема В ячейке Excel текст (текст в ячейках разный, разной длины), где то в середине текста число которое может состоять из разного количества цифр. Но это чило идет после слов "КОЛ: ". Подскажите пожалуйста каким образом это число вытащить из текста в отдельную ячейку.
Большое спасибо за дельные советы;) Добавлено через 11 минут и 36 секунд Может каким нить образом посчитать знаки до числа т.е. до 0123456789; потом знаки до конца числа... Помоему уже были похожие топики но не могу найти... Подскажите плз Ваще надо сино |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20580 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Baha_Ahmed |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 21.12.2007 Репутация: нет Всего: нет |
"где то в середине текста число которое может состоять из разного количества цифр." в таких случаях надо всегда писать универсальные коды ![]()
такой код универсален где бы не лежали цифры они буду собраны воедино можно его конечно модифицировать но это уже за тобой!!!! Добавлено через 3 минуты и 35 секунд
а вдруг чисел не пять а больше и не после слова "Кол" ![]() |
||||||||
|
|||||||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20580 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Прежде чем делать замечания, неплохо бы понять, что именно делает код. Дабы не сказать глупость. Заодно неплохо бы понять, нужно ли автору темы решение ТВОЕЙ проблемы. Твой код просто заменяет не-цифры на пробелы. Пользы в нем - ноль (десятичная точка? унарный минус? экспоненциальная форма?), да к тому же груда синтаксических ошибок. Добавлено через 3 минуты и 7 секунд Loskutov, проверь на числах с плавающей точкой - могут быть проблемы с десятичным разделителем в региональных настройках. Возможно, потребуется заменить Val на CInt (CLng, CDbl...) -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Baha_Ahmed |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 21.12.2007 Репутация: нет Всего: нет |
Я вижу ты гордый Мякина!!!! по поводу не-цифр, этот кусок кода что делает тормоз!!!
[removed by moderator] а по поводу пробелов можно просто этот момент закоментировать. будет выглядеть вот так:[code=nocolor]
[removed by moderator] если ты исправишь мой код я только буду рад. Добавлено @ 10:48
а эти моменты что ты перечислил просто пусть добавит в условия и их тоже либо соберут "в число" либо их оттуда изымут. Я же сказал, что его можно модифицировать. [removed by moderator] Добавлено @ 10:55
Что и требовалось доказать!!!! Чел указал конкретную ситуацию или одну из них. [removed by moderator] Это сообщение отредактировал(а) Akina - 14.8.2008, 12:07 |
||||||||||
|
|||||||||||
neiron |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 18.4.2006 Где: Краснодар Репутация: 3 Всего: 4 |
Baha_Ahmed, а что будет если в строке не только после символов КОЛ будут идти циферки?
И Akina тебе правильно сказал, что сначала надо посмотреть что же в коде написано, а не просто заявлениями раскидываться. Если уж пишешь универсальный код, то пиши его до конца;) Это сообщение отредактировал(а) neiron - 14.8.2008, 11:00 |
|||
|
||||
Baha_Ahmed |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 21.12.2007 Репутация: нет Всего: нет |
Это надо к Мякине и обратиться. Елки палки вы все такие хакеры, ну добавь к коду условия .... какие ты хошь, там же его как хочь, какие хошь можно условия ставить!!! Я предложил только кусок, а там уж.... этот чел сам сможет все сделать, главное тело дал. Добавлено через 11 минут и 37 секунд
а что там написано не то что я имел в виду что ли. Ты сам почитай VB функции если что : Функция InStr(In String) служит для поиска номера символа(номера байта для InStrB), с которого начинается в заданной строке образец поиска. Поиск идет от указанной позиции слева направо. Поиск вхождения одной строки в другую весьма часто используемая операция. Нумерация символов всегда начинается с единицы Функция Mid(Middle) используется для считывания заданного числа символов или байт подряд от заданной позиции в строке слева направо. Нумерация символов в строке всегда начинается с единицы Мякина предлагает захватить со слова Кол пять идущих после цифр, что то не так? если что не так так возьми и прокомментируй!!! |
||||
|
|||||
neiron |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 18.4.2006 Где: Краснодар Репутация: 3 Всего: 4 |
ты сам ответил на свой вопрос:
Функция Mid(Middle) используется для считывания заданного числа символов или байт подряд от заданной позиции в строке слева направо. Нумерация символов в строке всегда начинается с единицы то бишь Num = Val(Mid(Str, Instr(Str,"КОЛ: ")+5)) значит что вырезаем символы из строки Str начиная с символа, который начинает последовательность "КОЛ: " и до КОНЦА строки. 5 - указывает на длину выржения "КОЛ: ". Всё что идёт после пробела вырезается. Правда, есть ошибочка у вас обоих, ибо в задаче не сказано, что после выражения КОЛ: не может быть других выражений, равно как и перед ним. Т.е. вволне допустима строка: ВА:13413 КОЛ: 342 ВАЛ: 343 В случае Акины вытащится 342 ВАЛ: 343 (и, как я понимаю, дальше выскочит ошибка) В случае Ахмеда (c учётом последних изменений): 13413342343 (что есть некорректный результат) Мой вариант:
За валидность кода не ручаюсь, ибо не имею под рукой компилятора. Можно сделать и более универсальным, но этого не требуется по условию. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20580 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
neiron, ты почти прав.
Val() игнорирует все символы, начиная с первого не-числового. Посему неважно, есть еще какие-то символы после "КОЛ: [значение]" или нет. Остальное верно. Добавлено @ 12:04 Интерпретатор VBA, имеющийся в любом Офисном приложении (Аксесс, Ворд, Эксель и пр.) вполне подойдет. Добавлено @ 12:08
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
neiron |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 18.4.2006 Где: Краснодар Репутация: 3 Всего: 4 |
Akina, о, точно. Я о VBA забыл совсем))
А если Val работает так, то вообще отлично. Проблема в одну строчку. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |