Подскажите. В файле есть макрос СписокПоиск Он ищет только по столбцу Е. Как я могу сделать так, чтобы он искал либо по другому столбцу, либо по всему листу?
Код
Sub СписокПоиск()
ufrmПоиск.Show (0)
End Sub
Sub isk()
ST = Selection.Row + 1
If Len(Range("E1").Value) = 1 Then
For i = ST To Cells(Rows.Count, 5).End(xlUp).Row
If UCase(Left(Cells(i, 5), 1)) = UCase(Range("E1").Value) Then
Cells(i, 5).Select
Exit Sub
End If
Next i
End If
If Len(Range("E1").Value) > 1 Then
For i = ST To Cells(Rows.Count, 5).End(xlUp).Row
If InStr(1, UCase(Cells(i, 5)), UCase(Range("E1").Value)) > 0 Then
Cells(i, 5).Select
Exit Sub
End If
Next i
End If
End Sub
panchous написал: Юрий М написал:Так что нужно - по другому столбцу или по всему листу?По другому столбцу, чтобы я понял, что менять в коде, чтобы поиск шёл по нужному мне столбц
А если предложите решение, чтобы поиск шёл еще и по листу, это мне очень поможет. Еще прикрепляю похожий макрос, я не могу посмотреть в нем код - он спрятан за кнопкой
Юрий М написал: Показанный в стартовом сообщении код (isk) не из модуля формы.Заменил везде (ВЕЗДЕ!) в модуле формы 5 на 10 - ищет и находит в столбце J.
Спасибо, это мне помогло. Я смотрел макрос, теперь понял, что нужно было смотреть модуль формы.
А возможно в этот код вставить диапазон, чтобы поиск был по всему листу?
Нет смысла искать по всему листу: достаточно смотреть используемый диапазон - Used Range. Но в этом случае недостаточно будет в первый столбец ЛистБокса записывать только номер строки: придётся писать адрес ячейки.
Юрий М написал: Нет смысла искать по всему листу: достаточно смотреть используемый диапазон - Used Range.Но в этом случае недостаточно будет в первый столбец ЛистБокса записывать только номер строки: придётся писать адрес ячейки.
Не понимаю где его смотреть, в коде формы нет строки Used Range
У меня есть кнопка с формой, где поиск проходит по всему листу. Но поиск идёт только по первому слову - это мне не подходит.
Мне нужно из этой формы перенести код поиска по всему листу во второй код.
Либо из второго кода перенести часть, отвечающую за поиск по всем словам в первый код.
Код
Option Explicit
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub TextBox1_Change()
Dim j As Long, i As Long, poisk As Range, iAdr$, LT%
ListBox1.Clear
LT = Len(TextBox1.Value)
If LT = 0 Then Exit Sub
j = 0
iAdr = ActiveSheet.UsedRange.Address
iAdr = Mid(iAdr, InStr(iAdr, ":") + 1)
For Each poisk In ActiveSheet.Range("A1:" & iAdr)
If UCase(Left(poisk, LT)) = UCase(TextBox1.Value) Then
ListBox1.AddItem poisk.Address
ListBox1.List(j, 1) = poisk
j = j + 1
End If
Next
End Sub
Private Sub ListBox1_Click()
If ListBox1.ListIndex = -1 Then Exit Sub
Range(ListBox1).Select
End Sub
Private Sub UserForm_Click()
End Sub