有20個產品每個產品測有4個數據,管控范圍是0-0.05,其中每個產品有些有一個不良或多個不良數據,最好能用VBA代碼在一個單元格內顯示OK數另一個單元格顯示NG數據,用函數解決也可以。
2 回答

慕運維8079593
TA貢獻1876條經驗 獲得超5個贊
樓主如果只要獲得每一列符合條件的OK數和NG數,其實函數公式就夠了,效率也很高。
示例1:在顯示OK的單元格里輸入 =COUNTIFS(B2:B21,">0",B2:B21,"<0.05");
示例2:在顯示NG的單元格里輸入 = 20 - OK的個數,即可。
如果想實現截圖所示的效果:即用顏色區分開OK和NG屬性的單元格,同時計算個數,則可以用VBA代碼來實現。
Sub 計數并用顏色標記() Dim rng As Range, c As Range, i%, ok%, ng% Dim startRow&, endRow& startRow = 2: endRow = 21 '在此處定義數據區域的開始行和結束行,根據樓主截圖,設定為2和21 i = 1 With Sheet1 Do i = i + 1 Set rng = .Range(.Cells(startRow, i), .Cells(endRow, i)) ok = 0: ng = 0 For Each c In rng If c.Value > 0 And c.Value < 0.05 Then c.Interior.Color = RGB(255, 0, 0) '紅色 ok = ok + 1 Else c.Interior.Color = RGB(0, 0, 255) '藍色 ng = ng + 1 End If Next .Cells(endRow + 1, i).Value = ok '在數據檢索區域的下一行寫入ok的個數 .Cells(endRow + 2, i).Value = ng '在數據檢索區域的下兩行寫入ng的個數 Loop Until i = 5 'i = 5意味著數據判斷要執行完第E列再結束 End With End Sub |

元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
Sub
Macro1()
Dim
Rng
As
Range, Rng1
As
Range
Set
Rng = Range(
"a1:d20"
)
For
Each
Rng1
In
Rng
If
Rng1.Value > 0.05
Or
Rng1.Value < 0
Then
Rng1.Interior.Color = vbRed
Else
Rng1.Interior.Color = vbBlue
End
If
Next
Rng1
End
Sub
- 2 回答
- 0 關注
- 280 瀏覽
添加回答
舉報
0/150
提交
取消