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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск ячейки в таблице через VBA - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Поиск ячейки в таблице через VBA
Niff-Nif Дата: Вторник, 12.02.2013, 12:07 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 40% ±

Доброго всем время суток,
Задача:
Есть лист с массивом, например, А:А со множеством не пустых строк.
Нужно в данном массиве найти строку равную, например, "три поросенка".
Знаю как решить данную задачу через For... Next и AdvancedFilter, НО, наверняка есть более красивый метод решения данного вопроса.

Буду Вам признателен если ткнете меня пятачок в изящное решение данной проблемы. biggrin

С уважением,
Niff-Nif
 
Ответить
СообщениеДоброго всем время суток,
Задача:
Есть лист с массивом, например, А:А со множеством не пустых строк.
Нужно в данном массиве найти строку равную, например, "три поросенка".
Знаю как решить данную задачу через For... Next и AdvancedFilter, НО, наверняка есть более красивый метод решения данного вопроса.

Буду Вам признателен если ткнете меня пятачок в изящное решение данной проблемы. biggrin

С уважением,
Niff-Nif

Автор - Niff-Nif
Дата добавления - 12.02.2013 в 12:07
Gustav Дата: Вторник, 12.02.2013, 12:31 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Что подразумевается под решением: факт наличия значения где-то в массиве (типа EXISTS) или точное позиционирование на эту ячейку?

Например, так (с позиционированием):
[vba]
Код
Range("A:A").Find("три поросенка").Select
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 12.02.2013, 12:48
 
Ответить
СообщениеЧто подразумевается под решением: факт наличия значения где-то в массиве (типа EXISTS) или точное позиционирование на эту ячейку?

Например, так (с позиционированием):
[vba]
Код
Range("A:A").Find("три поросенка").Select
[/vba]

Автор - Gustav
Дата добавления - 12.02.2013 в 12:31
Niff-Nif Дата: Вторник, 12.02.2013, 13:13 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 40% ±

Подразумевается, что где-то в массиве есть данное значение и мне нужноузнать адрес данной ячейки, где имеет место совпадение.
 
Ответить
СообщениеПодразумевается, что где-то в массиве есть данное значение и мне нужноузнать адрес данной ячейки, где имеет место совпадение.

Автор - Niff-Nif
Дата добавления - 12.02.2013 в 13:13
RAN Дата: Вторник, 12.02.2013, 13:39 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Если одного тычка мало. biggrin

[vba]
Код
a = Range("A:A").Find("три поросенка").Address
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЕсли одного тычка мало. biggrin

[vba]
Код
a = Range("A:A").Find("три поросенка").Address
[/vba]

Автор - RAN
Дата добавления - 12.02.2013 в 13:39
Niff-Nif Дата: Вторник, 12.02.2013, 14:21 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 40% ±

Хрю, хрю Вам.
Попробуем.
 
Ответить
СообщениеХрю, хрю Вам.
Попробуем.

Автор - Niff-Nif
Дата добавления - 12.02.2013 в 14:21
Niff-Nif Дата: Вторник, 12.02.2013, 14:35 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 40% ±

Вот какая закавыка: если я ищу 2, то он мне дает первое же значение где есть цифра 2, например, 802. А мне нужноячейка где именно 2!!

Это какпри использовании фильтра, если поставить 2 то найдет первое входящее значение, например, 209, а если указать =2, то найдет именно 2.


Сообщение отредактировал Niff-Nif - Вторник, 12.02.2013, 15:06
 
Ответить
СообщениеВот какая закавыка: если я ищу 2, то он мне дает первое же значение где есть цифра 2, например, 802. А мне нужноячейка где именно 2!!

Это какпри использовании фильтра, если поставить 2 то найдет первое входящее значение, например, 209, а если указать =2, то найдет именно 2.

Автор - Niff-Nif
Дата добавления - 12.02.2013 в 14:35
Gustav Дата: Вторник, 12.02.2013, 15:45 | Сообщение № 7
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Цитата (Niff-Nif)
если я ищу 2, то он мне дает первое же значение где есть цифра 2, например, 802. А мне нужноячейка где именно 2


А хелп по Range.Find почитать? А на параметр LookAt внимание обратить?
[vba]
Код
Range("A:A").Find(What:="2",LookAt:=xlWhole).Select
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 12.02.2013, 15:47
 
Ответить
Сообщение
Цитата (Niff-Nif)
если я ищу 2, то он мне дает первое же значение где есть цифра 2, например, 802. А мне нужноячейка где именно 2


А хелп по Range.Find почитать? А на параметр LookAt внимание обратить?
[vba]
Код
Range("A:A").Find(What:="2",LookAt:=xlWhole).Select
[/vba]

Автор - Gustav
Дата добавления - 12.02.2013 в 15:45
Niff-Nif Дата: Вторник, 12.02.2013, 15:57 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 40% ±

Цитата (Gustav)
Address

Хрю-хрю большое.
Range.find и Lookat читал, но не понял sad
Еще раз спасибо. Плюсанул.
 
Ответить
Сообщение
Цитата (Gustav)
Address

Хрю-хрю большое.
Range.find и Lookat читал, но не понял sad
Еще раз спасибо. Плюсанул.

Автор - Niff-Nif
Дата добавления - 12.02.2013 в 15:57
Niff-Nif Дата: Вторник, 12.02.2013, 16:22 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 40% ±

Вот ведь не задача... Толи голова того, толи зуб болит, НО:
есть условие
[vba]
Код
If Not Workbooks("ччч.xlsm").Worksheets("ччч").Range("A:A").Find(What:="Три поросенка" & Me.TextBox7.Value, LookAt:=xlWhole).Row = False Then
[/vba]
Так вот, если данный критерий существует, то работает все ОК, но если таких данных нет, то выдает ошибку. В чем проблема?

[admin]Оформляйте коды тегами![/admin]
 
Ответить
СообщениеВот ведь не задача... Толи голова того, толи зуб болит, НО:
есть условие
[vba]
Код
If Not Workbooks("ччч.xlsm").Worksheets("ччч").Range("A:A").Find(What:="Три поросенка" & Me.TextBox7.Value, LookAt:=xlWhole).Row = False Then
[/vba]
Так вот, если данный критерий существует, то работает все ОК, но если таких данных нет, то выдает ошибку. В чем проблема?

[admin]Оформляйте коды тегами![/admin]

Автор - Niff-Nif
Дата добавления - 12.02.2013 в 16:22
RAN Дата: Вторник, 12.02.2013, 16:28 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Как вариант. Заменить
[vba]
Код
.Row = False  
[/vba]
на
[vba]
Код
Is Nothing
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеКак вариант. Заменить
[vba]
Код
.Row = False  
[/vba]
на
[vba]
Код
Is Nothing
[/vba]

Автор - RAN
Дата добавления - 12.02.2013 в 16:28
Niff-Nif Дата: Вторник, 12.02.2013, 16:47 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 40% ±

Мдя, будем считать что дело в зубе smile
Еще раз спасибо
 
Ответить
СообщениеМдя, будем считать что дело в зубе smile
Еще раз спасибо

Автор - Niff-Nif
Дата добавления - 12.02.2013 в 16:47
  • Страница 1 из 1
  • 1
Поиск:

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