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

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

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

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

На таблице есть два столбца. В первом данные, во втором вычисления(формулы).
Нужно найти значение в столбце при помощи 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2013, 13:33
Ответы с готовыми решениями:

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

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

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

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

10
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
02.04.2013, 14:00 2
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  [ТС] 3
Цитата Сообщение от IvanOK Посмотреть сообщение
ты ищещь по умолчанию , а ето значит по формулам, а нужно искать по значению
Спасибо, помогло!

Не по теме:

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

0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
02.04.2013, 14:20 4
VBA-Excel-команда "Find" связана с окном "Найти и заменить" в программе "Excel".
Поэтому в команде "Find" нужно указывать все парметры (я обычно не указываю параметр "After"), чтобы на работу кода не влияли настройки окна "Найти и заменить".
2
4 / 4 / 1
Регистрация: 12.08.2012
Сообщений: 67
02.04.2013, 14:46  [ТС] 5
Цитата Сообщение от Скрипт Посмотреть сообщение
VBA-Excel-команда "Find" связана с окном "Найти и заменить" в программе "Excel".
Поэтому в команде "Find" нужно указывать все парметры (я обычно не указываю параметр "After"), чтобы на работу кода не влияли настройки окна "Найти и заменить".
В моем случае помогло только добавление LookIn:=xlValues.
По любому спасибо за дополнение.
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
02.04.2013, 14:50 6
Цитата Сообщение от ghebog Посмотреть сообщение
В моем случае помогло только добавление LookIn:=xlValues.
ghebog, потому что в окне "Найти и заменить" было всё то, что вам нужно.
0
4 / 4 / 1
Регистрация: 12.08.2012
Сообщений: 67
12.04.2013, 12:02  [ТС] 7
Всем привет!
Задача такая:
В столбце "А" - имена, в столбце "В" - номера.
В ячейке "В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
15151 / 6424 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
12.04.2013, 13:09 8
Пробуйте, разбирайтесь
Кликните здесь для просмотра всего текста
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  [ТС] 9
Цитата Сообщение от Казанский Посмотреть сообщение
Пробуйте, разбирайтесь
ОК! Ща бум)))

Добавлено через 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
  #10

Не по теме:

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

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

Не по теме:

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



Добавлено через 1 час 33 минуты
Поправка 4-й строки.
Если диапазон на другом листе, тогда везде надо явно указать лист.
Set whereImLooking = Worksheets("Лист1").Range("B3:B" & Worksheets("Лист1").Cells(Rows.Count, "B").End(xlUp).Row)
0
12.04.2013, 15:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2013, 15:44
Помогаю со студенческими работами здесь

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

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

Vba протянуть формулу по столбцу С до последней ячейки по столбцу D
всем доброго времени суток Уважаемые профи,подскажите,пожалуйста, такой вопрос: в ячейке С1...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru