2014-12-02 57 views
0

我有一个宏从几个日志记录表中获取信息,并在主工作簿中编译该信息。在同一个宏中,我操作数据以便填充多个图表和图形。如果我可以建立我想查看的日期范围并且只提取该数据,那么我所拥有的问题就是最有用的信息。例如,如果我想查看所有机器从9/9/14到11/9/14创建的废品数量。有没有办法将这个添加到我已经创建的宏的开始?我正在处理的信息看起来像我下面的内容。在特定日期范围内运行宏

Machine  Operator  Date Production Scrap 
A    w   9/9/14  300   15 
B    x   9/9/14  400   0 
C    y   9/12/14  150   50 
D    z   10/9/14  200   3 
+0

其中宏创建?请发布。 – ZAT 2014-12-02 17:33:11

回答

0

这已经过测试。它将与一个长度不断变化的表格一起工作,并且可以将这个概念适应于许多需求。玩的开心。

Sub ScrapCount() 

Dim str_dateMin As String 
Dim str_dateMax As String 
Dim dateMin As Date 
Dim dateMax As Date 
Dim lastRow As Long 
Dim subTotal As Double 
Dim lookupDate As Date 

Dim lRow As Long 

lastRow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row 
subTotal = 0 

str_dateMin = InputBox("Input beginning date, mm/dd/yyyy:") 
str_dateMax = InputBox("Input end date, mm/dd/yyyy:") 
dateMin = CDate(str_dateMin) 
dateMax = CDate(str_dateMax) 

For lRow = 2 To lastRow 

    lookupDate = Sheets("Sheet1").Cells(lRow, "C").Value 

    If dateMin <= lookupDate And lookupDate <= dateMax Then 
     subTotal = subTotal + Sheets("Sheet1").Cells(lRow, "E").Value 
    End If 

Next lRow 

MsgBox ("Total scrap for date range = " & subTotal) 

End Sub 

Input1 Input2 Solution

+0

虽然对于这样的事情,我可能只是在“ReportSheet”上定义一些单元格,并让它们不断更新,并为Min&Max范围提供一些单元格。也许一个UserForm的下拉列表提出了其他问题进行排序或其他一些附加功能。这是VB的概念性使用。希望你能建立一些东西,而不是最终的解决方案。 SumIF语句可能会正常。 – peege 2014-12-02 21:53:52

+0

谢谢!这对我正在工作的项目来说是一个重大突破。 – 2014-12-04 20:05:09

+0

@WesMahoney,如果你发现了一些适合你的东西,并且你认为这个问题关闭了,可以自由选择其中一个答案,以帮助未来的人浏览知道它已经解决。 :) http://stackoverflow.com/help/accepted-answer – peege 2014-12-04 23:05:00

0

非常广泛,但这里是我会去的:

  1. 起始宏的要求日期范围内的InputBox(1开始1 最终),并存储为日期变量)
  2. 遍历行和仅 副本,如果日期单元的值是内定义的变量的范围从 步骤1