Уважаемые программисты, помогите, пожалуйста.
Нужно осуществить поиск значения по столбцу, чтобы при каждом нажатии на кнопку поиск продолжался.
Например столбец:
1
2
1
3
3
1
Мы вводим вTextBox значение 1. Мне нужно чтобы при нажатии на кнопку находилось значение 1 и ячейка выделялась, при следующем нажатии на кнопку находилось следующая 1 и т.д..
Написала такой код в автоматическом режиме:
Cells.Find(What:=TextBox1.Text).Activate
Cells.FindNext(After:=ActiveCell).Activate
Но он находит только первую единицу и не продолжает поиск.
Что делать?
Поиск значения по столбцу с помощью VBA
Модератор: Naeel Maqsudov
Может опечатка (нет What):
Cells.Find(What:=TextBox1.Text).Activate
Cells.FindNext(What:=TextBox1.Text, After:=ActiveCell).Activate
Cells.Find(What:=TextBox1.Text).Activate
Cells.FindNext(What:=TextBox1.Text, After:=ActiveCell).Activate
попробовала добавить, вылезла ошибка :"Named argument not found".nilem писал(а):Может опечатка (нет What):
Cells.Find(What:=TextBox1.Text).Activate
Cells.FindNext(What:=TextBox1.Text, After:=ActiveCell).Activate
Тогда давайте свой пример.
nilem писал(а):Тогда давайте свой пример.
это у меня часть курсовой... нужно осуществить поиск по столбцу, как я в первом сообщении писала... конкретного задания нет...
Если в "B45:B50" записаны Ваши единицы и т.д., то вот что-то типа этого:
Код: Выделить всё
Sub Макрос1()
Dim poz As Range, rng As Range, Адрес As String
Dim cc As Integer
Set rng = ActiveSheet.Range("B45:B50")
'поиск первого соответствия
Set poz = rng.Find(What:="1", LookAt:=xlWhole, SearchOrder:=xlByRows)
If poz Is Nothing Then Exit Sub
poz.Select
MsgBox "Нашел"
Адрес = poz.Address
Do
cc = cc + 1
Set poz = rng.FindNext(poz)
poz.Select
MsgBox "Нашел еще"
'цикл, пока поиск не вернется к месту 1-го найденного соответствия
Loop While poz.Address <> Адрес
MsgBox "Всего найдено " & cc
End Sub