Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск определенных символов вначале содержимого ячейки - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск определенных символов вначале содержимого ячейки (Макросы/Sub)
Поиск определенных символов вначале содержимого ячейки
giovanni Дата: Четверг, 26.05.2016, 00:40 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Доброй ночи!

Подскажите, пожалуйста, по следующему вопросу.

К примеру, есть ячейка, в которой находится произвольный текст.
В тексте ячейки постоянно меняются первые 1-3 символа, например: а. 1111111, аб. 1111111, абв. 1111111.

Каким образом можно проверить ячейку на наличие в первые 4 символах содержимого ячейки (в том числе и точку), на наличие одного из вариантов: "а.", "аб", "абв.", вырезать их из ячейки и передать в переменную, либо делать иное действие, если одного их данных вариантов вначале ячейки нет.

Сможет ли помочь в данном вопросе инструмент Find в VBA?
Пробовал написать макрос при помощи Find, но не могу никак понять, как задать именно жесткий поиск по вышеуказаным
наборам символов, чтобы указать макросу, что ищутся именно "а.", "аб." или "абв." и именно вначале содержимого ячейки
Подскажите, пожалуйста, в какую сторону смотреть)

Спасибо!


Сообщение отредактировал giovanni - Четверг, 26.05.2016, 00:42
 
Ответить
СообщениеДоброй ночи!

Подскажите, пожалуйста, по следующему вопросу.

К примеру, есть ячейка, в которой находится произвольный текст.
В тексте ячейки постоянно меняются первые 1-3 символа, например: а. 1111111, аб. 1111111, абв. 1111111.

Каким образом можно проверить ячейку на наличие в первые 4 символах содержимого ячейки (в том числе и точку), на наличие одного из вариантов: "а.", "аб", "абв.", вырезать их из ячейки и передать в переменную, либо делать иное действие, если одного их данных вариантов вначале ячейки нет.

Сможет ли помочь в данном вопросе инструмент Find в VBA?
Пробовал написать макрос при помощи Find, но не могу никак понять, как задать именно жесткий поиск по вышеуказаным
наборам символов, чтобы указать макросу, что ищутся именно "а.", "аб." или "абв." и именно вначале содержимого ячейки
Подскажите, пожалуйста, в какую сторону смотреть)

Спасибо!

Автор - giovanni
Дата добавления - 26.05.2016 в 00:40
krosav4ig Дата: Четверг, 26.05.2016, 02:59 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1465
Репутация: 597 ±
Замечаний: 0% ±

Excel 2007, 2013
Доброй ночи[vba]
Код
.Find("абв.*", , xlFormulas, xlWhole, xlByRows, xlNext)
[/vba]


(_)Õvõ(_)

Сообщение отредактировал krosav4ig - Четверг, 26.05.2016, 02:59
 
Ответить
СообщениеДоброй ночи[vba]
Код
.Find("абв.*", , xlFormulas, xlWhole, xlByRows, xlNext)
[/vba]

Автор - krosav4ig
Дата добавления - 26.05.2016 в 02:59
giovanni Дата: Четверг, 26.05.2016, 15:00 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Пришла на ум примерно такая идея решения задачи. Например, ячейка с исходным текстом имеет адрес "А2" и в данной ячейке следующий текст "аб. Абвгд":
[vba]
Код

xcell = Range("A2").Value
xcellpart = Left(xcell,4)
[/vba]
То есть, методом Left взять 4 первые символа ячейки и уже их передав в переменную при помощи конструкции if then else проверять на совпадение с текстом, который ищется.
Подскажите, пожалуйста, как проверить при помощи .Find взятые от исходного текста 4 первых символа на наличие текста "аб."? То есть, чтобы в случае, если в первых 4 символах есть текст "аб.", выполнялась одно условие, а если текст не "аб.", а просто "а.", выполнялось другое?
 
Ответить
СообщениеПришла на ум примерно такая идея решения задачи. Например, ячейка с исходным текстом имеет адрес "А2" и в данной ячейке следующий текст "аб. Абвгд":
[vba]
Код

xcell = Range("A2").Value
xcellpart = Left(xcell,4)
[/vba]
То есть, методом Left взять 4 первые символа ячейки и уже их передав в переменную при помощи конструкции if then else проверять на совпадение с текстом, который ищется.
Подскажите, пожалуйста, как проверить при помощи .Find взятые от исходного текста 4 первых символа на наличие текста "аб."? То есть, чтобы в случае, если в первых 4 символах есть текст "аб.", выполнялась одно условие, а если текст не "аб.", а просто "а.", выполнялось другое?

Автор - giovanni
Дата добавления - 26.05.2016 в 15:00
krosav4ig Дата: Четверг, 26.05.2016, 19:04 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1465
Репутация: 597 ±
Замечаний: 0% ±

Excel 2007, 2013
giovanni, .Find не о том, вам нужен Instr [vba]
Код
Sub dd()
    Dim xcell As Variant
    xcell = Range("A2").Value
    Select Case 1
        Case InStr(xcell, "абв.")
            MsgBox "абв."
        Case InStr(xcell, "аб.")
            MsgBox "аб."
        Case InStr(xcell, "а.")
            MsgBox "а."
    End Select
End Sub
[/vba]


(_)Õvõ(_)

Сообщение отредактировал krosav4ig - Четверг, 26.05.2016, 19:06
 
Ответить
Сообщениеgiovanni, .Find не о том, вам нужен Instr [vba]
Код
Sub dd()
    Dim xcell As Variant
    xcell = Range("A2").Value
    Select Case 1
        Case InStr(xcell, "абв.")
            MsgBox "абв."
        Case InStr(xcell, "аб.")
            MsgBox "аб."
        Case InStr(xcell, "а.")
            MsgBox "а."
    End Select
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 26.05.2016 в 19:04
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск определенных символов вначале содержимого ячейки (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!