Шаг 71 - Нефть, таблицы и как делать не надо, продолжение
Итак, теперь нам нужно в соответствии с номером скважины делать выборку. Заведен еще один массив.
Dim allbore As Range ' здесь будет храниться диапазон скважин Dim alldata As Collection ' это набор элементов Dim borename As New Collection ' это набор скважи
Напишем функцию которая будет заполнять коллекцию по именам скважины:
Sub SelectBore(s As String) Set alldata = New Collection For Each bore In allbore ' бежим по диапазону скважин bore.Select ' выделяем ячейку If bore.Value = s Then ' если это та скважина ActiveCell.Offset(0, 1).Select ' вправо alldata.Add (ActiveCell.Value) ' поместить в коллекцию End If Next bore End Sub
Пробежим по всем скважинам и возмем значение из правой колонки поместив его а массив.
Sub FindOil() Set allbore = Range("A:A") ' выбрать колонку ' только с данными Set allbore = Range(allbore.Columns.End(xlUp).Address, allbore.Columns.End(xlDown).Address) allbore.Select ' выделить For Each bore In allbore ' бежим по диапазону скважин bore.Select ' выделяем ячейку If FindElement(bore.Value) = True Then ' если кважины нет в коллекции borename.Add (bore.Value) ' добавить к коллекцию End If Next bore For Each elem In borename SelectBore (elem) Debug.Print (elem) For Each data In alldata ' пробежим по результату для того что бы ' показать что массив заполнен Debug.Print (data) Next data Next elem End Sub
В окне отладки можно увидеть, что массив заполнен значениями соответствующими скважинам на данный момент.
Ну, а теперь можно исследовать этот массив на пример решения какая скважина. Вообщем то на самом деле я просто повторил работу БД. Сделал выборку. Давайте попробуем сделать простой выводы. Например если упоминается нефть но она нефтенасышенная иначе пусто.
Sub FindOil() ..................... For Each elem In borename SelectBore (elem) Debug.Print (elem) For Each data In alldata ' пробежим по результату для того что бы ' показать что массив заполнен 'Debug.Print (data) If data = "Нефть" Then MsgBox "Oil !!!!!! " + elem Exit For End If Next data Next elem End Sub
При работе этой функции будет два окна для скважины с нефтью.
Загрузить проект | Предыдущий Шаг | Следующий Шаг
Автор Каев Артем.