Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как осуществить поиск нескольких значений по Excel одним запросом Find? / 7 сообщений из 7, страница 1 из 1
13.03.2009, 13:04:53
    #35867274
supervk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить поиск нескольких значений по Excel одним запросом Find?
Как можно осуществить поиск нескольких значений по ячейкам Excel одним запросом?

Подключаюсь к Excel через OLE ("Excel.Application"). Надо найти ячейку с заданным значением. Ньюанс: у значения ячейки могут быть как лидирующие, так и окончательные пробелы. Т.е. если надо найти "2.2", то под условия поиска попадают как "2.2", " 2.2", так и " 2.2 ", так и "2.2 ".
На данный момент мне приходится запускать последовательно четыре поиска:

Find(SearchValue, Range.Cells(1, 1), -4123, 1, 1, 1, 0, 0)
Find(" " + SearchValue, Range.Cells(1, 1), -4123, 1, 1, 1, 0, 0)
Find(SearchValue + " ", Range.Cells(1, 1), -4123, 1, 1, 1, 0, 0)
Find(" " + SearchValue + " ", Range.Cells(1, 1), -4123, 1, 1, 1, 0, 0)

Как это можно сделать одним махом? Может есть возможность как-нибудь решить используя регулярные выражения?
...
Рейтинг: 0 / 0
15.03.2009, 21:35:45
    #35870189
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить поиск нескольких значений по Excel одним запросом Find?
supervk, "2.2" просто почему не подходит? попробуйте поставить 4й аргумент не 1, а 2
...
Рейтинг: 0 / 0
16.03.2009, 03:14:49
    #35870390
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить поиск нескольких значений по Excel одним запросом Find?
_slan_supervk, "2.2" просто почему не подходит? попробуйте поставить 4й аргумент не 1, а 2
Тогда найдется ячейка 2.25 и 32.2, а врядли это то, что нужно :)

supervkКак это можно сделать одним махом? Может есть возможность как-нибудь решить используя регулярные выражения?
Регулярные выражения во встроенном поиске Excel пока не используются (в Word уже есть некое подобие РВ). Если использовать РВ через библиотеку vbScript, то придется перебирать все ячейки. Может проще предварительно одним ударом уничтожить все пробелы в искомом диапазоне?

Код: plaintext
1.
2.
3.
    MyRange.Replace _
        What:=" ", _
        Replacement:="", _
        LookAt:=xlPart


KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
16.03.2009, 04:11:24
    #35870397
supervk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить поиск нескольких значений по Excel одним запросом Find?
KL (XL)Регулярные выражения во встроенном поиске Excel пока не используются (в Word уже есть некое подобие РВ). Если использовать РВ через библиотеку vbScript, то придется перебирать все ячейки.
Почему-то после сотни-другой переборов переборы начинают сильно тормозить. В итоге несколько поисков работают значительно быстрее.

KL (XL)Может проще предварительно одним ударом уничтожить все пробелы в искомом диапазоне?
Код: plaintext
1.
2.
3.
    MyRange.Replace _
        What:=" ", _
        Replacement:="", _
        LookAt:=xlPart
KL
[MVP - Microsoft Excel]
Не выйдет, 1) потому что в искомом диапазоне многие значения вычисляются формулами 2) в искомом диапазоне могут присутствовать другие значения, которые нельзя менять
...
Рейтинг: 0 / 0
16.03.2009, 14:28:59
    #35871631
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить поиск нескольких значений по Excel одним запросом Find?
KL (XL)_slan_supervk, "2.2" просто почему не подходит? попробуйте поставить 4й аргумент не 1, а 2
Тогда найдется ячейка 2.25 и 32.2, а врядли это то, что нужно :)




ну если так, то после нахождения проверить на пробел - быстрее будет, чем несколько поисков
...
Рейтинг: 0 / 0
17.04.2009, 10:00:45
    #35937804
Vad-Komarov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить поиск нескольких значений по Excel одним запросом Find?
supervk, Здравствуйте. Не могли бы вы выложить полный код подключения и поиска. Я начинающий. и Поэтому у меня много вопросов возникает. Будет легче если я просто поковыряюсь в рабочем коде.
...
Рейтинг: 0 / 0
17.04.2009, 11:25:11
    #35938097
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как осуществить поиск нескольких значений по Excel одним запросом Find?
supervk, данные для посика в одном столбце?
Вы не думали подключаться через OLE DB? И делать запрос?
Что-то типа
WHERE столбец='2.2' OR столбец=' 2.2' и .т.д.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как осуществить поиск нескольких значений по Excel одним запросом Find? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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