Всем доброго времени, не могу дописать код. Есть задача, иногда дописывать значения в в столбце О в соответствии с строкой. Помню что Find вроде как и находит значение не скрытых строк. Для этого прописал цикл который скрывает по столбцу О строки где имеются значения в столбце О. Далее в textbox2 начинаю вводить необходимое мне значение (поиск по столбцу С) и по задумке, в листбокс должны отображаться только значения только не скрытых строк. А выходит что Find "находит" значения и скрытых строк. Как можно решить эту "проблему", что бы поиск осуществлялся по столбцу С и в лист бокс записывались значения только не скрытых строк. Всем спасибо
Всем доброго времени, не могу дописать код. Есть задача, иногда дописывать значения в в столбце О в соответствии с строкой. Помню что Find вроде как и находит значение не скрытых строк. Для этого прописал цикл который скрывает по столбцу О строки где имеются значения в столбце О. Далее в textbox2 начинаю вводить необходимое мне значение (поиск по столбцу С) и по задумке, в листбокс должны отображаться только значения только не скрытых строк. А выходит что Find "находит" значения и скрытых строк. Как можно решить эту "проблему", что бы поиск осуществлялся по столбцу С и в лист бокс записывались значения только не скрытых строк. Всем спасибоAlexVBA
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
[/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 If End Sub
[/vba] Так вы имели ввиду? И селект не могу сфокусировать на нужную ячейку.AlexVBA
Сообщение отредактировал AlexVBA - Понедельник, 24.10.2022, 13:51
У вас в ячейке С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]
Цитата
при "сворачивании" не верно работает.
У вас в ячейке С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
До этого особо не вникал в логику работы, но вот посмотрел и есть вопрос, зачем используется две переменные 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).Select End Sub
[/vba]
До этого особо не вникал в логику работы, но вот посмотрел и есть вопрос, зачем используется две переменные 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).Select End Sub
В немного ранее проэкт делал, поиск был по трем столбцам. Поэтому переправил на один(ну типа зачем мучатся) оказалось есть зачем( Благодарен вам, все заработало. Очень вам благодарен. Хорошего дня)
В немного ранее проэкт делал, поиск был по трем столбцам. Поэтому переправил на один(ну типа зачем мучатся) оказалось есть зачем( Благодарен вам, все заработало. Очень вам благодарен. Хорошего дня)AlexVBA