我有以下电子表格结构。填充VBA的最佳方式
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作为存储位置和11/01/2011和11/04/2011如开始和结束日期我的输出应是
ID Storage_name Name_of_Product Quantity used
1 st1 pro1 7
4 st1 pro3 5
我没有使用数据库(我希望我是)。这是做到这一点的最佳方式。
我首先从头到尾运行三个循环,第二个检查storage_name,第三个检查Name_of_product,然后更新quantity_counter,但它变得混乱。应该有更好的方法来做到这一点。我正在将输出写入文件。
谢谢 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
我检查的日期开始。那部分很好。
什么看起来像你的代码? –
我将使用代码 – Ank
更新我的帖子“哪种方法是最好的方法” - 使用变量数组进行数据操作,然后将最终转储数据用于表单。 *从不*运行For循环来逐个转储信息单元格。我现在无法得到这个,如果可能的话周末会查看 – brettdj