Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/196: Рейтинг темы: голосов - 196, средняя оценка - 4.63
4 / 4 / 1
Регистрация: 12.08.2012
Сообщений: 67

Поиск по столбцу

02.04.2013, 13:33. Показов 40262. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Тема уже избитая, но все равно я не нашел ответа на вопрос.

На таблице есть два столбца. В первом данные, во втором вычисления(формулы).
Нужно найти значение в столбце при помощи Find(What...).
Поиск по первому столбцу работает, а по второму выдает ошибку.
Как организовать поиск по второму столбцу?

Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub CommandButton1_Click()
'Поиск по первому столбцу
    Dim iRange As Range
    Dim iFind As String
    Dim iRow As Integer
    iFind = Worksheets("Лист1").Cells(3, 1).Value
    Set iRange = Worksheets("Лист1").Columns("A:A").Find(What:=iFind)
    iRow = iRange.Row
    
'Поиск по второму столбцу
    Dim iRange0 As Range
    Dim iFind0 As String
    Dim iRow0 As Integer
    iFind0 = Worksheets("Лист1").Cells(3, 2).Value
    Set iRange0 = Worksheets("Лист1").Columns("B:B").Find(What:=iFind0)
    iRow0 = iRange0.Row
    
'Проверка
    MsgBox ("iFind= " & iFind & Chr(13) & _
            "iRow= " & iRow & Chr(13) & Chr(13) & _
            "iFind0= " & iFind0 & Chr(13) & _
            "iRow0= " & iRow0)
    
End Sub
Вложения
Тип файла: xls Поиск.xls (40.5 Кб, 159 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.04.2013, 13:33
Ответы с готовыми решениями:

Поиск значений по заданному столбцу
Здравствуйте, нужна помощь. Есть макрос который при введении в него 13 символов перескакивает на строчку в низ. Как его видоизменить, что...

Поиск в таблице по столбцу и строке
1.Помогите пожалуйста, нужно сделать поиск в таблице. Номер строки и номер столбца вносятся через форму в тектбоксы. Нужно чтобы нашлось...

Поиск по столбцу и отображение данных в форме
Всем привет, и с наступающим новым годом! Уже две недели изучаю форумы, но так и не могу найти ответ на мой вопрос. Есть столбец на...

10
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
02.04.2013, 14:00
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub CommandButton1_Click()
'1-й Блок
    Dim iRange As Range
    Dim iFind As String
    Dim iRow As Integer
    iFind = Worksheets("Лист1").Cells(3, 1).Value
    Set iRange = Worksheets("Лист1").Columns("A:A").Find(What:=iFind, LookIn:=xlValues)
    iRow = iRange.Row
    
'2-й Блок
    Dim iRange0 As Range
    Dim iFind0 As String
    Dim iRow0 As Integer
    iFind0 = Worksheets("Лист1").Cells(3, 2).Value
    Set iRange0 = Worksheets("Лист1").Columns("B:B").Find(What:=iFind0, LookIn:=xlValues)
    iRow0 = iRange0.Row
    
'Проверка
    MsgBox ("iFind= " & iFind & Chr(13) & _
            "iRow= " & iRow & Chr(13) & Chr(13) & _
            "iFind0= " & iFind0 & Chr(13) & _
            "iRow0= " & iRow0)
    
End Sub
ты ищещь по умолчанию , а ето значит по формулам, а нужно искать по значению
1
4 / 4 / 1
Регистрация: 12.08.2012
Сообщений: 67
02.04.2013, 14:09  [ТС]
Цитата Сообщение от IvanOK Посмотреть сообщение
ты ищещь по умолчанию , а ето значит по формулам, а нужно искать по значению
Спасибо, помогло!

Не по теме:

Пинок в зад - отличный повод для шага вперед.

0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
02.04.2013, 14:20
VBA-Excel-команда "Find" связана с окном "Найти и заменить" в программе "Excel".
Поэтому в команде "Find" нужно указывать все парметры (я обычно не указываю параметр "After"), чтобы на работу кода не влияли настройки окна "Найти и заменить".
2
4 / 4 / 1
Регистрация: 12.08.2012
Сообщений: 67
02.04.2013, 14:46  [ТС]
Цитата Сообщение от Скрипт Посмотреть сообщение
VBA-Excel-команда "Find" связана с окном "Найти и заменить" в программе "Excel".
Поэтому в команде "Find" нужно указывать все парметры (я обычно не указываю параметр "After"), чтобы на работу кода не влияли настройки окна "Найти и заменить".
В моем случае помогло только добавление LookIn:=xlValues.
По любому спасибо за дополнение.
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
02.04.2013, 14:50
Цитата Сообщение от ghebog Посмотреть сообщение
В моем случае помогло только добавление LookIn:=xlValues.
ghebog, потому что в окне "Найти и заменить" было всё то, что вам нужно.
0
4 / 4 / 1
Регистрация: 12.08.2012
Сообщений: 67
12.04.2013, 12:02  [ТС]
Всем привет!
Задача такая:
В столбце "А" - имена, в столбце "В" - номера.
В ячейке "В1" вводится искомое значение и по нажатию кнопки ведется поиск на наличие в диапазоне
Range("B3:B" & Cells(Rows.Count, "B").End(xlUp).Row).

Если значение найдено - выводится сообщение со значением из первого столбца той же строки.
Это получается.

Если значение не найдено - оно (значение) добавляется в последнюю ячейку столбца "В".
Это не получается.

Подтолкните в нужное направление.
Заранее благодарен.
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub CommandButton1_Click()
    Dim whereImLooking As Range
    Set whereImLooking = Worksheets("Ëèñò1").Range("B3:B" & Cells(Rows.Count, "B").End(xlUp).Row)
    
    Dim iLookingFor As String
    iLookingFor = Worksheets("Ëèñò1").Cells(1, 2).Value
    
    Dim iRowErr As Integer
    
    If iLookingFor = whereImLooking.Find(What:=iLookingFor, LookIn:=xlValues, LookAt:=xlPart, _
                                        SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, _
                                        MatchCase:=False, SearchFormat:=False) Then
        iRowErr = whereImLooking.Find(What:=iLookingFor, LookIn:=xlValues, LookAt:=xlPart, _
                                        SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, _
                                        MatchCase:=False, SearchFormat:=False).Row
        MsgBox "Óæå åñòü !" & Chr(13) & Chr(13) & "Âîò æå îíî :)" & Chr(13) & _
            (Worksheets("Ëèñò1").Cells(iRowErr, 1).Value), vbCritical, "ÂÍÈÌÀÍÈÅ"
            Worksheets("Ëèñò1").Cells(iRowErr, 1).Select
        Exit Sub
    Else
        Worksheets("Ëèñò1").Cells(Cells(Rows.Count, 2).End(xlUp).Row + 1, 2).Value = iLookingFor
        MsgBox "Íå çàáóäü äîáÿâèòü èìÿ!", vbExclamation, "ÂÍÈÌÀÍÈÅ"
        Worksheets("Ëèñò1").Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 2).Select
    End If
End Sub
Вложения
Тип файла: rar Поиск.rar (17.5 Кб, 112 просмотров)
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
12.04.2013, 13:09
Пробуйте, разбирайтесь
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub CommandButton1_Click()
    Dim whereImLooking As Range
    Dim myCell As Range
    Set whereImLooking = Worksheets("Лист1").Range("B3:B" & Cells(Rows.Count, "B").End(xlUp).Row)
    
    Dim iLookingFor As String
    iLookingFor = Worksheets("Лист1").Cells(1, 2).Value
    
    Dim iRowErr As Integer
    
    Set myCell = whereImLooking.Find(What:=iLookingFor, LookIn:=xlValues, LookAt:=xlPart, _
                                        SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, _
                                        MatchCase:=False, SearchFormat:=False)
    If Not myCell Is Nothing Then 'найдено
        myCell.Select
        MsgBox "Уже есть !" & vbLf & vbLf & "Вот же оно :)" & vbLf & _
            myCell, vbCritical, "ВНИМАНИЕ"
        Exit Sub
    Else
        Worksheets("Лист1").Cells(Cells(Rows.Count, 2).End(xlUp).Row + 1, 2).Select
        Selection.Value = iLookingFor
        MsgBox "Не забудь добявить имя!", vbExclamation, "ВНИМАНИЕ"
'        Worksheets("Лист1").Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 2).Select
    End If
End Sub
1
4 / 4 / 1
Регистрация: 12.08.2012
Сообщений: 67
12.04.2013, 13:51  [ТС]
Цитата Сообщение от Казанский Посмотреть сообщение
Пробуйте, разбирайтесь
ОК! Ща бум)))

Добавлено через 8 минут
Вроде ищем ячейку со значением, а не само значение...

Добавлено через 26 минут
Казанский, еще раз СПАСИБО!
Окончательный вариант:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub CommandButton1_Click()
    Dim whereImLooking As Range
    Dim iRowErr As Integer
    Set whereImLooking = Worksheets("Ëèñò1").Range("B3:B" & Cells(Rows.Count, "B").End(xlUp).Row)
    Dim iLookingFor As String
    iLookingFor = Worksheets("Ëèñò1").Cells(1, 2).Value
    Dim myCell As Range
    Set myCell = whereImLooking.Find(What:=iLookingFor, LookIn:=xlValues, LookAt:=xlPart, _
                                        SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, _
                                        MatchCase:=False, SearchFormat:=False)
    If Not myCell Is Nothing Then 'íàéäåíî
        myCell.Select
        iRowErr = myCell.Row
        MsgBox "Óæå åñòü !" & vbLf & vbLf & "Âîò æå îíî :)" & vbLf & _
            (Worksheets("Ëèñò1").Cells(iRowErr, 1).Value), vbCritical, "ÂÍÈÌÀÍÈÅ"
            Worksheets("Ëèñò1").Cells(iRowErr, 1).Select
        Exit Sub
    Else
        Worksheets("Ëèñò1").Cells(Cells(Rows.Count, 2).End(xlUp).Row + 1, 2).Select
        Selection.Value = iLookingFor
        MsgBox "Íå çàáóäü äîáÿâèòü èìÿ!", vbExclamation, "ÂÍÈÌÀÍÈÅ"
        Worksheets("Ëèñò1").Cells(Selection.Row, 1).Select
    End If
End Sub
0
12.04.2013, 13:58

Не по теме:

17-я строка лишняя:scratch:

0
4 / 4 / 1
Регистрация: 12.08.2012
Сообщений: 67
12.04.2013, 15:44  [ТС]
Цитата Сообщение от Апострофф Посмотреть сообщение
17-я строка лишняя

Не по теме:

В данном контексте согласен на все 100.
А как поведет себя код, если на кнопку повешаны (кнопка на юзерФорм) и другие действия и расчеты?



Добавлено через 1 час 33 минуты
Поправка 4-й строки.
Если диапазон на другом листе, тогда везде надо явно указать лист.
Set whereImLooking = Worksheets("Лист1").Range("B3:B" & Worksheets("Лист1").Cells(Rows.Count, "B").End(xlUp).Row)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.04.2013, 15:44
Помогаю со студенческими работами здесь

Поиск значения на листе по строке и столбцу
Доброго времени суток! В VBA новичок, поэтому прошу не пинать, если увидите какую-то глупость, а просто ткнуть в неё носом))) Не...

Осуществить поиск по столбцу в котором есть проценты
Добрый день! Подскажите как мне осуществить поиск по столбцу в котором есть проценты. Надо найти проценты от 50 до 100 То есть, на...

Поиск по столбцу A:A по всем листам документа кроме первого
Здравствуйте! имею код поиска заданного значения по столбцу активного листа, Dim poz As Range, rng As Range, Adr As...

Vba протянуть формулу по столбцу С до последней ячейки по столбцу D
всем доброго времени суток Уважаемые профи,подскажите,пожалуйста, такой вопрос: в ячейке С1 имеется формула =ТЕКСТ($D1;"ДД.ММ.ГГГГ...

Сортировка по правому столбцу. Поиск в правом столбце значения из левой
Здравствуйте!!!! Кому не сложно и есть время на такую кашу ((( Искал в инете макрос не нашел. Сортировку макросрекордером делал, но как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru