Excel БД и запросы. Нужна помощь.

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
PVL
Сообщения: 7
Зарегистрирован: 18 дек 2005, 23:06

Есть данные сформированные на двух листах Excel.
Нужно написать запрос, который накодит одинаковые поля в столбце одного листа, в другому столбцу берет номер. На втором листе ищет в столбце такие намера, и найдя берет определенные данные по этим намерам и провяди с ними какие-то действия, например находит разницу межну max и min значением и помещает все это в новую книгу.

Таки действия, возможно написать с помощью макросов, и вообще какова технология создания таких запросов?
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

Вы сами разбили задачу на несколько этапов, смотрим на каждый этап.
В каждом этапе есть исходные данные и выходные, а также есть действия.
Очевидно, что
- входными данными являются таблица или диапазон ячеек (в Excel это объект Range) и критерии, по которым выполняются определенные действия;
- выходными данными опять же является таблица (диапазон ячеек)

Действие можно реализовать в виде макроса (кода на VBA), например привязанного к кнопке, который возьмет исходный диапазон ячеек, в соответствии с определенными критериями произведет необходимые действия и сформирует выходной диапазон ячееек Excel как результат.

Например:
Пусть диапазон "mas_A" - исходный список, располагается A1:A10
а диапазон "mas_B" - список без пробелов, располагается B1: B....

Код: Выделить всё

Private Sub CommandButton1_Click() 
  p = 0 
  Range("B:B").ClearContents 
  For Each iCell In Application.Range("mas_A") 
    If iCell.Value <> "" Then 
        p = p + 1 
        Cells(p, 2) = iCell.Value 
    End If 
  Next 
  ActiveWorkbook.Names.Add Name:="mas_B", RefersToR1C1:=Range("B1", Cells(p, 2)) 
End Sub
Действие также можно реализовать и в виде формул, используя стандартные (или самодельные) функции Excel для работы с БД.
Ответить