Помогите с поиском в Exel
этого ряда,без выборки вроде автофильтра. Как например в каком-нибудь электронном словаре.
надеюсь понятно объяснил...
Можно ли,сделать ячейку или форму,чтобы при наборе символов в ней происходил поиск по алфавиту без выборки,т.е. проосто переход к полям
этого ряда,без выборки вроде автофильтра. Как например в каком-нибудь электронном словаре.
надеюсь понятно объяснил...
Не совсем понятно... Тоесть, ты хочешь, чтобы у тебя была форма, в которой ты вводишь последовательность символов, а на листе у тебя выделялась ячейка, начинающаяся с этой последовательности символов, так я понял?
Можно ли,сделать ячейку или форму,чтобы при наборе символов в ней происходил поиск по алфавиту без выборки,т.е. проосто переход к полям
этого ряда,без выборки вроде автофильтра. Как например в каком-нибудь электронном словаре.
надеюсь понятно объяснил...
Можно сделать, например, следующее:
Забить массив по которому будет производиться поиск в ячейки A1:A100;
В ячейке B1 вводить искомую величину (даже можно используя символ *).
В ячейке C1 записать формулу
=ПОИСКПОЗ(B1,A1:A100;0)
А в ячейке D1 записать формулу
=ИНДЕКС(A1:A100;C1;1)
Тогда в ячейке C1 появится номер строки массива, соответствующий первому вхождения в массив искомого [текста], а в ячейке D1 появится это самое искомое.
Надеюсь, что это то, что тебе нужно...
Можно сделать, например, следующее:
Забить массив по которому будет производиться поиск в ячейки A1:A100;
В ячейке B1 вводить искомую величину (даже можно используя символ *).
В ячейке C1 записать формулу
=ПОИСКПОЗ(B1,A1:A100;0)
А в ячейке D1 записать формулу
=ИНДЕКС(A1:A100;C1;1)
Тогда в ячейке C1 появится номер строки массива, соответствующий первому вхождения в массив искомого [текста], а в ячейке D1 появится это самое искомое.
Надеюсь, что это то, что тебе нужно...
при помощи,этих функций курсор не будет перескакивать к нужной ячейке.
А надо чтоб перескакивал.
но всеравно спасибо.
:)
при помощи,этих функций курсор не будет перескакивать к нужной ячейке.
А надо чтоб перескакивал.
но всеравно спасибо.
:)
А чтоб еще и перескакивал.
Worksheet_Change(ByVal Target As Range)
If Target = Range("C1") Then
Range("A" & Range("C1").Value).Select
End If
End Sub
Зтот код скопируйте кликнув правой на имени листа, на листе уже должны быть предложенные высше формулы, и из контекстного меню выбрав "Исходный текст".
Успехов dedtolya
А чтоб еще и перескакивал.
Worksheet_Change(ByVal Target As Range)
If Target = Range("C1") Then
Range("A" & Range("C1").Value).Select
End If
End Sub
Зтот код скопируйте кликнув правой на имени листа, на листе уже должны быть предложенные высше формулы, и из контекстного меню выбрав "Исходный текст".
Успехов dedtolya
Спасибо,но это не совсем то...
Вот пример в присоединенном файле:
В единственном ряду названия городов.
Вверху TextBox
Хотелось бы так ,чтобы когда я пишу в TextBoxe'е
(он закреплен и не сдвигается скроллом),
в окне было видно именно этот город,причем название города в текстбоксе может быть введено не до конца.
Помогите с кодом на VB,очень надо...
Спасибо,но это не совсем то...
Вот пример в присоединенном файле:
В единственном ряду названия городов.
Вверху TextBox
Хотелось бы так ,чтобы когда я пишу в TextBoxe'е
(он закреплен и не сдвигается скроллом),
в окне было видно именно этот город,причем название города в текстбоксе может быть введено не до конца.
Помогите с кодом на VB,очень надо...
Dim c As Range
Columns("a:a").Select
For Each c In Selection
If c.Value = Empty Then
If c.Row > 3 Then
MsgBox ("Не найдено. Проверте раскладку")
Exit For
End If
End If
If Left(LCase(c.Value), TextBox1.TextLength) = LCase(TextBox1.Value) Then
'Range("a" & c.Row).Select
Exit For
End If
Next c
ActiveWindow.ScrollRow = c.Row
TextBox1.Activate
End Sub
Только список городов не долже содержать пустые строки.
Слово Region лучше взять в кавычки, чтобы он не натыкался на него при поиске
Dim c As Range
Columns("a:a").Select
For Each c In Selection
If c.Value = Empty Then
If c.Row > 3 Then
MsgBox ("Не найдено. Проверте раскладку")
Exit For
End If
End If
If Left(LCase(c.Value), TextBox1.TextLength) = LCase(TextBox1.Value) Then
'Range("a" & c.Row).Select
Exit For
End If
Next c
ActiveWindow.ScrollRow = c.Row
TextBox1.Activate
End Sub
Только список городов не долже содержать пустые строки.
Слово Region лучше взять в кавычки, чтобы он не натыкался на него при поиске
Почти то же самое.
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim c As Range
Dim ListCities As Range
Dim Scan As String
Set ListCities = Range(Range("A3"), Range("A3").End(xlDown))
Scan = TextBox1.Text
If Scan = Empty Then
Exit Sub
End If
If Len(Scan) = 1 Then Scan = UCase(Scan): TextBox1.Text = Scan
Set c = ListCities.Find(Scan, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=True)
If Not c Is Nothing Then
ActiveWindow.ScrollRow = c.Row
TextBox1.Activate
Else: MsgBox "Нет такого в списке"
End If
End Sub
И чтоб в списке пустых ни-ни!
Успехов dedtolya