У меня следующая структура электронной таблицы.
ID, Storage_name, Name_of_product, Quantity_used, Date_Used
Пользователь указывает дату начала и окончания, и я должен заполнить все количества, использованные для всех продуктов, присутствующих в хранилище, между этими датами начала / окончания.
Например
если структура
ID Storage_name Name_of_Product Quantity used Date_used
1 st1 pro1 2 11/1/2011
2 st2 pro2 5 11/2/2011
1 st1 pro1 3 11/2/2011
4 st1 pro3 5 11/4/2011
и пользователь выбирает st1 в качестве места хранения, а 01.11.2011 и 11.04.2011 в качестве даты начала и окончания мой вывод должен быть
ID Storage_name Name_of_Product Quantity used
1 st1 pro1 7
4 st1 pro3 5
Я не использую базы данных (хотелось бы). Какой самый лучший способ сделать это.
Я запускаю три цикла: сначала от начала до конца, затем проверяю имя_хранилища, третье проверяю_продукт__изображения и затем обновляю количество_счетчиков, но оно становится грязным. должен быть лучший способ сделать это. Я записываю вывод в файл.
Спасибо
P.S. Я знаю, что мне не нужно использовать столбец storage_name в выходном файле. Любой способ в порядке.
Я делаю это
Dim quantity as long
storageName= selectWarehouse.Value ' from combo box
quantity = 0
With Worksheets("Reports")
lastrow = .Range("A1").SpecialCells(xlCellTypeLastCell).row + 1
End With
row = 2
While (row < lastrow)
If CStr((Worksheets("Reports").Cells(row, 2))) = storageName Then
name = CStr((Worksheets("Reports").Cells(row, 3)))
quantity = quantity + CLng(Worksheets("Reports").Cells(row, 4))
End If
row = row + 1
Wend
Я проверяю дату в начале. Эта часть в порядке.