Уважаемые специалисты, помогите чайнику) Нашел макрос на вашем, замечательном, сайте который мне был бы очень полезен, он ищет значение в книге и выглядит так:
[vba]
Код
Sub CustomSearch() Dim strFindData As String Dim rgFound As Range Dim i As Integer ' Ввод строки для поиска strFindData = InputBox("Введите данные для поиска") ' Просмотр всех рабочих листов книги For i = 1 To Worksheets.Count With Worksheets(i).Cells ' Поиск на i-м листе Set rgFound = .Find(strFindData, LookIn:=xlValues) If Not rgFound Is Nothing Then ' Ячейка с заданным значением найдена - выделим ее Sheets(i).Select rgFound.Select Exit Sub End If End With Next ' Поиск завершен. Ячейка не найдена MsgBox ("Поиск не дал результатов") End Sub
[/vba]
Но он просматривает всю книгу, а мне нужно, что бы просматривал только определенный столбец или несколько заданных столбцов и выделял соответственно значения только в этих столбцах, помогите подредактировать а то я ну "не в зуб ногой", пока, в VBA. Для вас это не составит большого труда, думаю. Заранее спасибо за помощь! Еще можно маленько объяснить, что вы переделали т.к. я учу этот прекрасный инструмент для Excel.
Уважаемые специалисты, помогите чайнику) Нашел макрос на вашем, замечательном, сайте который мне был бы очень полезен, он ищет значение в книге и выглядит так:
[vba]
Код
Sub CustomSearch() Dim strFindData As String Dim rgFound As Range Dim i As Integer ' Ввод строки для поиска strFindData = InputBox("Введите данные для поиска") ' Просмотр всех рабочих листов книги For i = 1 To Worksheets.Count With Worksheets(i).Cells ' Поиск на i-м листе Set rgFound = .Find(strFindData, LookIn:=xlValues) If Not rgFound Is Nothing Then ' Ячейка с заданным значением найдена - выделим ее Sheets(i).Select rgFound.Select Exit Sub End If End With Next ' Поиск завершен. Ячейка не найдена MsgBox ("Поиск не дал результатов") End Sub
[/vba]
Но он просматривает всю книгу, а мне нужно, что бы просматривал только определенный столбец или несколько заданных столбцов и выделял соответственно значения только в этих столбцах, помогите подредактировать а то я ну "не в зуб ногой", пока, в VBA. Для вас это не составит большого труда, думаю. Заранее спасибо за помощь! Еще можно маленько объяснить, что вы переделали т.к. я учу этот прекрасный инструмент для Excel.Антон
Sub CustomSearch() Dim strFindData As String Dim rgFound As Range 'Dim i As Integer - эта переменная больше не нужна
strFindData = InputBox("Введите данные для поиска") ' Ввод искомого значения ' 'For i = 1 To Worksheets.Count *** Цикл убираем, потому что ищем в диапазоне, а не на всех листах With Selection 'будем искать в выделенном диапазоне 'With Worksheets(i).Cells *** Поиск на i-м листе - это тоже убираем Set rgFound = .Find(strFindData, LookIn:=xlValues) If Not rgFound Is Nothing Then 'Sheets(i).Select - i-того листа теперь нет, поэтому убираем rgFound.Select Exit Sub End If End With 'Next - раз нет цикла, то и Next не нужен MsgBox ("Поиск не дал результатов") End Sub
[/vba]
[vba]
Код
Sub CustomSearch() Dim strFindData As String Dim rgFound As Range 'Dim i As Integer - эта переменная больше не нужна
strFindData = InputBox("Введите данные для поиска") ' Ввод искомого значения ' 'For i = 1 To Worksheets.Count *** Цикл убираем, потому что ищем в диапазоне, а не на всех листах With Selection 'будем искать в выделенном диапазоне 'With Worksheets(i).Cells *** Поиск на i-м листе - это тоже убираем Set rgFound = .Find(strFindData, LookIn:=xlValues) If Not rgFound Is Nothing Then 'Sheets(i).Select - i-того листа теперь нет, поэтому убираем rgFound.Select Exit Sub End If End With 'Next - раз нет цикла, то и Next не нужен MsgBox ("Поиск не дал результатов") End Sub