Поиск в видимых строках/ячейках
AlexVBA
Дата: Понедельник, 24.10.2022, 12:06 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
0% ±
Всем доброго времени, не могу дописать код. Есть задача, иногда дописывать значения в в столбце О в соответствии с строкой. Помню что Find вроде как и находит значение не скрытых строк. Для этого прописал цикл который скрывает по столбцу О строки где имеются значения в столбце О. Далее в textbox2 начинаю вводить необходимое мне значение (поиск по столбцу С) и по задумке, в листбокс должны отображаться только значения только не скрытых строк. А выходит что Find "находит" значения и скрытых строк. Как можно решить эту "проблему", что бы поиск осуществлялся по столбцу С и в лист бокс записывались значения только не скрытых строк. Всем спасибо
Всем доброго времени, не могу дописать код. Есть задача, иногда дописывать значения в в столбце О в соответствии с строкой. Помню что Find вроде как и находит значение не скрытых строк. Для этого прописал цикл который скрывает по столбцу О строки где имеются значения в столбце О. Далее в textbox2 начинаю вводить необходимое мне значение (поиск по столбцу С) и по задумке, в листбокс должны отображаться только значения только не скрытых строк. А выходит что Find "находит" значения и скрытых строк. Как можно решить эту "проблему", что бы поиск осуществлялся по столбцу С и в лист бокс записывались значения только не скрытых строк. Всем спасибо AlexVBA
Ответить
Сообщение Всем доброго времени, не могу дописать код. Есть задача, иногда дописывать значения в в столбце О в соответствии с строкой. Помню что Find вроде как и находит значение не скрытых строк. Для этого прописал цикл который скрывает по столбцу О строки где имеются значения в столбце О. Далее в textbox2 начинаю вводить необходимое мне значение (поиск по столбцу С) и по задумке, в листбокс должны отображаться только значения только не скрытых строк. А выходит что Find "находит" значения и скрытых строк. Как можно решить эту "проблему", что бы поиск осуществлялся по столбцу С и в лист бокс записывались значения только не скрытых строк. Всем спасибо Автор - AlexVBA Дата добавления - 24.10.2022 в 12:06
Kuzmich
Дата: Понедельник, 24.10.2022, 12:39 |
Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация:
157
±
Замечаний:
0% ±
Excel 2003
Цитата
в лист бокс записывались значения только не скрытых строк.
Допишите в диапазоны, где у вас функция Find
Set r1 = Range("c1:C1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
Цитата
в лист бокс записывались значения только не скрытых строк.
Допишите в диапазоны, где у вас функция Find
Set r1 = Range("c1:C1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
Kuzmich
Ответить
Сообщение Цитата
в лист бокс записывались значения только не скрытых строк.
Допишите в диапазоны, где у вас функция Find [vba]
Set r1 = Range("c1:C1000").SpecialCells(xlCellTypeVisible ).Find(TextBox2.Text )
[/vba]Автор - Kuzmich Дата добавления - 24.10.2022 в 12:39
AlexVBA
Дата: Понедельник, 24.10.2022, 13:42 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
0% ±
Допишите в диапазоны, где у вас функция Find
Все равно отображает и скрытые.
Private Sub ListBox1_Click()
Dim r1 As Range, r2 As Range
If ListBox1.ListIndex = -1 Then Exit Sub
Set r1 = Range("c1:C1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
If r1.Row = 2 Then
Set r2 = Range("c1:C1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
If r2.Row = 2 Then
Cells(ListBox1.ListIndex + 1 , 3 ).Select
Else
Cells(ListBox1.ListIndex + r2.Row, 3 ).Select
End If
Else
Set r2 = Range("C" & r1.Row + 2 & ":C1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
Cells(ListBox1.ListIndex + r2.Row, 3 ).Select
End If
End Sub
Так вы имели ввиду? И селект не могу сфокусировать на нужную ячейку.
Допишите в диапазоны, где у вас функция Find
Все равно отображает и скрытые.
Private Sub ListBox1_Click()
Dim r1 As Range, r2 As Range
If ListBox1.ListIndex = -1 Then Exit Sub
Set r1 = Range("c1:C1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
If r1.Row = 2 Then
Set r2 = Range("c1:C1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
If r2.Row = 2 Then
Cells(ListBox1.ListIndex + 1 , 3 ).Select
Else
Cells(ListBox1.ListIndex + r2.Row, 3 ).Select
End If
Else
Set r2 = Range("C" & r1.Row + 2 & ":C1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
Cells(ListBox1.ListIndex + r2.Row, 3 ).Select
End If
End Sub
Так вы имели ввиду? И селект не могу сфокусировать на нужную ячейку.AlexVBA
Сообщение отредактировал AlexVBA - Понедельник, 24.10.2022, 13:51
Ответить
Сообщение Допишите в диапазоны, где у вас функция Find
Все равно отображает и скрытые. [vba]
Private Sub ListBox1 _Click()Dim r1 As Range , r2 As Range If ListBox1.ListIndex = -1 Then Exit Sub Set r1 = Range("c1:C1000").SpecialCells(xlCellTypeVisible ).Find(TextBox2.Text ) If r1 .Row = 2 Then Set r2 = Range("c1:C1000").SpecialCells(xlCellTypeVisible ).Find(TextBox2.Text ) If r2 .Row = 2 Then Cells(ListBox1.ListIndex + 1, 3).Select Else Cells(ListBox1.ListIndex + r2 .Row , 3).Select End If Else Set r2 = Range("C" & r1 .Row + 2 & ":C1000").SpecialCells(xlCellTypeVisible ).Find(TextBox2.Text ) Cells(ListBox1.ListIndex + r2 .Row , 3).Select End IfEnd Sub
[/vba] Так вы имели ввиду? И селект не могу сфокусировать на нужную ячейку.Автор - AlexVBA Дата добавления - 24.10.2022 в 13:42
Kuzmich
Дата: Понедельник, 24.10.2022, 13:44 |
Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация:
157
±
Замечаний:
0% ±
Excel 2003
Так еще есть
With Range("C1:c10000" & lastrow).SpecialCells(xlCellTypeVisible)
Так еще есть
With Range("C1:c10000" & lastrow).SpecialCells(xlCellTypeVisible)
Kuzmich
Ответить
Сообщение Так еще есть [vba]
With Range("C1:c10000" & lastrow ).SpecialCells(xlCellTypeVisible )
[/vba] Автор - Kuzmich Дата добавления - 24.10.2022 в 13:44
AlexVBA
Дата: Понедельник, 24.10.2022, 13:53 |
Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
0% ±
Прописывал, выпадало в ошибку... снова прописал, кажись супер) Подскажите пожалуйста по селекту. при "сворачивании" не верно работает.
Прописывал, выпадало в ошибку... снова прописал, кажись супер) Подскажите пожалуйста по селекту. при "сворачивании" не верно работает.AlexVBA
Ответить
Сообщение Прописывал, выпадало в ошибку... снова прописал, кажись супер) Подскажите пожалуйста по селекту. при "сворачивании" не верно работает.Автор - AlexVBA Дата добавления - 24.10.2022 в 13:53
Kuzmich
Дата: Понедельник, 24.10.2022, 14:20 |
Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация:
157
±
Замечаний:
0% ±
Excel 2003
Цитата
при "сворачивании" не верно работает.
У вас в ячейке С5 значение А1, вот эту единицу функция Find и находит. Попробуйте выбрать диапазон для поиска
Set r1 = Range("c7:C1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
If r1.Row = 8 Then
Set r2 = Range("c7:c1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
If r2.Row = 8 Then
Cells(ListBox1.ListIndex + 8 , 3 ).Select
Цитата
при "сворачивании" не верно работает.
У вас в ячейке С5 значение А1, вот эту единицу функция Find и находит. Попробуйте выбрать диапазон для поиска
Set r1 = Range("c7:C1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
If r1.Row = 8 Then
Set r2 = Range("c7:c1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
If r2.Row = 8 Then
Cells(ListBox1.ListIndex + 8 , 3 ).Select
Kuzmich
Ответить
Сообщение Цитата
при "сворачивании" не верно работает.
У вас в ячейке С5 значение А1, вот эту единицу функция Find и находит. Попробуйте выбрать диапазон для поиска [vba]
Set r1 = Range("c7:C1000").SpecialCells(xlCellTypeVisible ).Find(TextBox2.Text ) If r1 .Row = 8 Then Set r2 = Range("c7:c1000").SpecialCells(xlCellTypeVisible ).Find(TextBox2.Text ) If r2 .Row = 8 Then Cells(ListBox1.ListIndex + 8, 3).Select
[/vba]Автор - Kuzmich Дата добавления - 24.10.2022 в 14:20
AlexVBA
Дата: Понедельник, 24.10.2022, 17:17 |
Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
0% ±
Попробуйте выбрать диапазон для поиска
Ничего не изменилось. Выбирает четко до начала скрытых строк. Дальше стоит на месте
Попробуйте выбрать диапазон для поиска
Ничего не изменилось. Выбирает четко до начала скрытых строк. Дальше стоит на месте AlexVBA
Ответить
Сообщение Попробуйте выбрать диапазон для поиска
Ничего не изменилось. Выбирает четко до начала скрытых строк. Дальше стоит на месте Автор - AlexVBA Дата добавления - 24.10.2022 в 17:17
Kuzmich
Дата: Понедельник, 24.10.2022, 19:19 |
Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация:
157
±
Замечаний:
0% ±
Excel 2003
В программе Private Sub TextBox2_Change() что означают переменные, которые не определены, lastrow и chbxPart
В программе Private Sub TextBox2_Change() что означают переменные, которые не определены, lastrow и chbxPart Kuzmich
Ответить
Сообщение В программе Private Sub TextBox2_Change() что означают переменные, которые не определены, lastrow и chbxPart Автор - Kuzmich Дата добавления - 24.10.2022 в 19:19
AlexVBA
Дата: Понедельник, 24.10.2022, 20:35 |
Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
0% ±
что означают переменные, которые не определены
lastrow не убрал, вариаций пробовал массу chbxPart не нашел этой
что означают переменные, которые не определены
lastrow не убрал, вариаций пробовал массу chbxPart не нашел этойAlexVBA
Ответить
Сообщение что означают переменные, которые не определены
lastrow не убрал, вариаций пробовал массу chbxPart не нашел этойАвтор - AlexVBA Дата добавления - 24.10.2022 в 20:35
Kuzmich
Дата: Понедельник, 24.10.2022, 20:50 |
Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация:
157
±
Замечаний:
0% ±
Excel 2003
Set rng = .Find(Me.TextBox2.Value, , , Abs (Abs (chbxPart + 1 ) + 1 ))
Set rng = .Find(Me.TextBox2.Value, , , Abs (Abs (chbxPart + 1 ) + 1 ))
Kuzmich
Ответить
Сообщение [vba]
Set rng = .Find(Me.TextBox2.Value , , , Abs(Abs(chbxPart + 1) + 1))
[/vba] Автор - Kuzmich Дата добавления - 24.10.2022 в 20:50
AlexVBA
Дата: Понедельник, 24.10.2022, 20:57 |
Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
0% ±
Set rng = .Find(Me.TextBox2.Value, , , Abs(Abs(chbxPart + 1) + 1))
Прошу прощения, уже эта строка выглядит по другому.
Set rng = Range("c7:C1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
Set rng = .Find(Me.TextBox2.Value, , , Abs(Abs(chbxPart + 1) + 1))
Прошу прощения, уже эта строка выглядит по другому.
Set rng = Range("c7:C1000" ).SpecialCells(xlCellTypeVisible).Find(TextBox2.Text)
AlexVBA
Ответить
Сообщение Set rng = .Find(Me.TextBox2.Value, , , Abs(Abs(chbxPart + 1) + 1))
Прошу прощения, уже эта строка выглядит по другому. [vba]
Set rng = Range("c7:C1000").SpecialCells(xlCellTypeVisible ).Find(TextBox2.Text )
[/vba]Автор - AlexVBA Дата добавления - 24.10.2022 в 20:57
Kuzmich
Дата: Понедельник, 24.10.2022, 21:39 |
Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация:
157
±
Замечаний:
0% ±
Excel 2003
Почему в Private Sub ListBox1_Click() в поиске (Find) стоит аргумент TextBox2.Text, а не ListBox1.Text
Почему в Private Sub ListBox1_Click() в поиске (Find) стоит аргумент TextBox2.Text, а не ListBox1.Text Kuzmich
Ответить
Сообщение Почему в Private Sub ListBox1_Click() в поиске (Find) стоит аргумент TextBox2.Text, а не ListBox1.Text Автор - Kuzmich Дата добавления - 24.10.2022 в 21:39
AlexVBA
Дата: Понедельник, 24.10.2022, 21:50 |
Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
0% ±
вот что получилось с селектом, не корректно он работает...не пойму как он вообще работает....криво вообщем. Ваши замечания исправил,
вот что получилось с селектом, не корректно он работает...не пойму как он вообще работает....криво вообщем. Ваши замечания исправил, AlexVBA
Ответить
Сообщение вот что получилось с селектом, не корректно он работает...не пойму как он вообще работает....криво вообщем. Ваши замечания исправил, Автор - AlexVBA Дата добавления - 24.10.2022 в 21:50
Kuzmich
Дата: Понедельник, 24.10.2022, 21:53 |
Сообщение № 14
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация:
157
±
Замечаний:
0% ±
Excel 2003
Посмотрите, может так надо
Ответить
Сообщение Посмотрите, может так надо Автор - Kuzmich Дата добавления - 24.10.2022 в 21:53
AlexVBA
Дата: Понедельник, 24.10.2022, 21:57 |
Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
0% ±
Посмотрите, может так надо
Да, но селект не корректно тоже работает или же он выделяет все? Правда, запутался уже.
Посмотрите, может так надо
Да, но селект не корректно тоже работает или же он выделяет все? Правда, запутался уже.AlexVBA
Ответить
Сообщение Посмотрите, может так надо
Да, но селект не корректно тоже работает или же он выделяет все? Правда, запутался уже.Автор - AlexVBA Дата добавления - 24.10.2022 в 21:57
Kuzmich
Дата: Понедельник, 24.10.2022, 22:31 |
Сообщение № 16
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация:
157
±
Замечаний:
0% ±
Excel 2003
До этого особо не вникал в логику работы, но вот посмотрел и есть вопрос, зачем используется две переменные r1 и r2 Убираем r2
Private Sub ListBox1_Click()
Dim r1 As Range, r2 As Range
If ListBox1.ListIndex = -1 Then Exit Sub
Set r1 = Range("c7:C1000" ).SpecialCells(xlCellTypeVisible).Find(ListBox1.Text)
Cells(r1.Row, 3 ).Select
End Sub
До этого особо не вникал в логику работы, но вот посмотрел и есть вопрос, зачем используется две переменные r1 и r2 Убираем r2
Private Sub ListBox1_Click()
Dim r1 As Range, r2 As Range
If ListBox1.ListIndex = -1 Then Exit Sub
Set r1 = Range("c7:C1000" ).SpecialCells(xlCellTypeVisible).Find(ListBox1.Text)
Cells(r1.Row, 3 ).Select
End Sub
Kuzmich
Ответить
Сообщение До этого особо не вникал в логику работы, но вот посмотрел и есть вопрос, зачем используется две переменные r1 и r2 Убираем r2 [vba]
Private Sub ListBox1 _Click()Dim r1 As Range , r2 As Range If ListBox1.ListIndex = -1 Then Exit Sub Set r1 = Range("c7:C1000").SpecialCells(xlCellTypeVisible ).Find(ListBox1.Text ) Cells(r1 .Row , 3).SelectEnd Sub
[/vba] Автор - Kuzmich Дата добавления - 24.10.2022 в 22:31
AlexVBA
Дата: Вторник, 25.10.2022, 08:49 |
Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
0% ±
зачем используется две переменные r1 и r2
В немного ранее проэкт делал, поиск был по трем столбцам. Поэтому переправил на один(ну типа зачем мучатся) оказалось есть зачем( Благодарен вам, все заработало. Очень вам благодарен. Хорошего дня)
зачем используется две переменные r1 и r2
В немного ранее проэкт делал, поиск был по трем столбцам. Поэтому переправил на один(ну типа зачем мучатся) оказалось есть зачем( Благодарен вам, все заработало. Очень вам благодарен. Хорошего дня)AlexVBA
Ответить
Сообщение зачем используется две переменные r1 и r2
В немного ранее проэкт делал, поиск был по трем столбцам. Поэтому переправил на один(ну типа зачем мучатся) оказалось есть зачем( Благодарен вам, все заработало. Очень вам благодарен. Хорошего дня)Автор - AlexVBA Дата добавления - 25.10.2022 в 08:49