0
我有一個代碼,可以找到一組材料編號的最大時間,但堅持重複代碼到下一組材料編號。請參考下面的數據表和代碼。在動態範圍內找到MAX並重復其餘數據的代碼
材料編號從變更爲1001,1002,1003 ..材料編號將不按順序排列。
要考慮的行是用於過程a直到h只有。
a.1,a.2,h.1和h.2需要從最大值範圍中排除。
下面的代碼在重複最大值的情況下也只會取第1個最大值。
請告知如何重複其餘材料編號的代碼,並僅採用工藝範圍a-h。可能的話,如果我們可以參考該過程,因爲一些範圍可能具有更多/更少的過程。
樣本數據:
Material Process Time (mins)
1001 a.1 0.00
1001 a.2 0.00
1001 a 0.50
1001 b 0.70
1001 c 1.00
1001 d 2.50
1001 e 1.00
1001 f 0.30
1001 g 0.50
1001 h 0.90
1001 h.1 0.00
1001 h.2 0.00
1002 a.1 0.00
1002 a.2 0.00
1002 a 0.40
1002 b 0.60
1002 c 1.00
1002 d 2.00
1002 e 2.00
1002 f 0.30
1002 g 0.80
1002 h 0.50
1002 h.1 0.00
1002 h.2 0.00
樣品最終結果是:
Material Process Time (mins)
1001 a.1 0.00
1001 a.2 0.00
1001 a 0.00
1001 b 0.00
1001 c 0.00
1001 d 2.50
1001 e 0.00
1001 f 0.00
1001 g 0.00
1001 h 0.00
1001 h.1 0.00
1001 h.2 0.00
1002 a.1 0.00
1002 a.2 0.00
1002 a 0.00
1002 b 0.00
1002 c 0.00
1002 d 2.00
1002 e 0.00
1002 f 0.00
1002 g 0.00
1002 h 0.00
1002 h.1 0.00
1002 h.2 0.00
目前代碼:
Sub test()
Dim LastRowB As String
Dim LastRowC As Long
Dim VarC As Double
Dim i As Integer
Dim varMAX as Double
LastRowB = Cells(Rows.Count, "B").End(xlUp).Row
LastRowC = Cells(Rows.Count, "C").End(xlUp).Row
VarC = Range("C4").Value
For i = 2 To LastRowC
If Range("C" & i).Value > VarC Then
VarC = Range("C" & i).Value
End If
Next i
For i = 2 To LastRowC
If Range("C" & i).Value < VarC Then
Range("C" & i).Value = 0
End If
Next i
varMax = 0
For i = 2 To LastRowC
If Range("C" & i).Value < VarC Then
Range("C" & i).Value = 0
Else
If Range("C" & i).Value = VarC And varMax < 1 Then
varMax = varMax + 1
Else
Range("C" & i).Value = 0
End If
End If
Next i
End Sub
什麼是你想與輸出呢? – peege 2014-12-04 02:32:14
@PJ羅森堡輸出將除了第一個最大值之外的所有其他時間改變爲零。我需要爲可用的材料做一個大規模的更改數據。我試圖錄制一個宏(使用if函數),但範圍不靈活。該過程可能會因材料編號而異。 – Aqila 2014-12-04 03:10:22
@PJ Rosenburg感謝您的幫助:)最終結果是我需要維護進程表,而不僅僅是結果表中可見的最大進程和時間。我仍然需要進行a.1 - h.2的過程,只有最長時間會顯示,其他時間會更改爲零。 – Aqila 2014-12-04 03:46:46