Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2009, 17:23   #1
zenner
Форумчанин
 
Регистрация: 12.08.2009
Сообщений: 199
По умолчанию Поиск нескольких значений

Добрый день!У меня есть таблица с номерами телефона в excel следующего типа:

Безымянный.jpg

Как мне можно с помощью поиска найти зразу несколько разных номеров и потомом добавить к этим номерам одно одинаковое значение!Например найти 12345,2323232,23223 и потом прикрепить к ним (29.09) чтобы получилось 12345(29.09) 2323232(29.09) и так далее.С помощью команды Заменить я могу искать и заменять только один номер а мне надо найти и заменить сразу несколько! Спасибо!!!
zenner вне форума Ответить с цитированием
Старый 30.09.2009, 06:49   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Создать форму с запросами "Какие номера искать", "Что добавлять" и т.п.
Устроит? Прикрепите файл с данными. Нет никакого желания создавать его вручную.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 30.09.2009, 09:18   #3
zenner
Форумчанин
 
Регистрация: 12.08.2009
Сообщений: 199
По умолчанию

Хотелось бы чтобы была форма следующего вида:
Безымянный.jpg

В первое поле я ввожу номер(но лучше сразу несколько номеров через & ) , во второе поле ввожу число которое нужно будет прописать рядом с номерами и нажимаю кнопку ПОИСК и рядом с нужными номерами прописывается число! СПАСИБО!

Последний раз редактировалось zenner; 30.09.2009 в 09:21.
zenner вне форума Ответить с цитированием
Старый 30.09.2009, 09:33   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

1. Если номеров, для которых требуется подстановка несколько, то как их вводить? В отдельный столбец? В ListBox? Или еще как-то?
2. Подставлять нужно одно и то же значение?
3. Где файл с данными?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 30.09.2009, 10:45   #5
zenner
Форумчанин
 
Регистрация: 12.08.2009
Сообщений: 199
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
1. Если номеров, для которых требуется подстановка несколько, то как их вводить? В отдельный столбец? В ListBox? Или еще как-то?
2. Подставлять нужно одно и то же значение?
3. Где файл с данными?
1) Я думал вводить все номера в первой форме в виде 334343&434343&555555 и так далее но если так не получается то любым другим способом.
2) Подставляется одно и то же значение для всех номеров.
3) Номера Я буду копировать в файл с формой тоесть я открываю файл с формой, ниже вставляю таблицу с номерами и потом произвожу поиск и добавление числа к определенным номерам.
zenner вне форума Ответить с цитированием
Старый 30.09.2009, 11:25   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Введите N строк и M столбцов с данными и прикрепите файл. Иначе, разговор не состоится.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 30.09.2009, 13:00   #7
zenner
Форумчанин
 
Регистрация: 12.08.2009
Сообщений: 199
По умолчанию

Оригинал файла :
example.rar

Количество колонок с номерами максимум 5 а количество строк может менятся.

Я наверное не могу правильно описать то что мне нужно.Нам приходят данные файлы,Я должен среди них найти определенные номера и рядом с ними написать определенную дату.Обычным поиском в excel можно искать только по одному номеру а я хотел искать сразу много номеров и добавлять к ним одну одинаковую дату.

Последний раз редактировалось zenner; 30.09.2009 в 13:09.
zenner вне форума Ответить с цитированием
Старый 01.10.2009, 05:22   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Запустите макрос "Main". Дальше, по-моему, все будет понятно.
Так устроит?
Вложения
Тип файла: rar example_2.rar (9.2 Кб, 137 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 01.10.2009, 11:05   #9
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте zenner.
Код SAS888 прекрасно выполняет задачу, можно только рекомендовать корректировку:
Код:
...
Dim s$
s = TextBox2.Text
...
            Set x = Cells.Find(what:=nm, LookAt:=xlWhole)
            If Not x Is Nothing Then
                Cells(x.Row, x.Column + 1) = s ' "...прописать рядом с номерами..."
                Exit Do
            End If
...
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 01.10.2009, 11:35   #10
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Уважаемый Teslenko_EA. В моем примере цикл Do...Loop был введен для того, чтобы найти все указанные ячейки и к их значению добавить нужный текст. Т.к. в процессе работы макрос изменяет само значение найденной ячейки, то цикл будет выполняться до тех пор, пока находятся искомые ячейки. пусть даже с одинаковыми значениями. Если же дубликатов быть не может, то и внутренний цикл не нужен.
Если же автору темы требуется не изменять значение найденной ячейки, а добавлять текст в ячейку рядом, то внутренний цикл (поиск всех повторяющихся значений ) нужно переделать, используя, например метод FindNext и добавить условие выхода из цикла.
Так же, можно ввести контроль TextBox2 на "пустоту", т.к. при пустом значении макрос вообще можно не выполнять.
В общем, примерно так:
Код:
Private Sub CommandButton1_Click()
    Dim x As Range, nm: Application.ScreenUpdating = False
    If TextBox2.Text = "" Then Exit Sub
    For Each nm In Split(TextBox1.Text, " ")
        Set x = Cells.Find(what:=nm, LookAt:=xlWhole)
        If Not x Is Nothing Then x.Next = TextBox2.Text
    Next
End Sub
Пример во вложении.
Вложения
Тип файла: rar example_3.rar (11.8 Кб, 102 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 01.10.2009 в 13:25. Причина: Добавлено
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод значений нескольких столбцов в DBLookUpComboBox dkl БД в Delphi 5 07.11.2011 16:41
поиск нескольких значений по одному запросу ilgis1 Microsoft Office Word 10 16.09.2009 19:49
Функция: возвращение нескольких значений. Вадим Буренков Общие вопросы Delphi 2 14.05.2009 18:05
Поиск значений Rom1k06 Microsoft Office Excel 11 04.09.2008 05:14
Поиск нескольких записей VenMaster БД в Delphi 1 14.06.2008 22:48