2014-12-02 55 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