在我们工作中有很多麻烦的数据需要我们来判定结果,如下图所示,共有5项测试,每个样品不用每一项都测试,未测试的项目填“/”,规格为“TBD”的项目只提供参考,不做判定依据,部分测试项目的结果为“OK”或“NG”,如果要用函数来解决,是一件麻烦的事,今天教大家VBA解决这个问题。
1490260573552054.jpg
效果演示如下
1490260590508850.gif
首先,点击录制宏,将保存位置改为个人宏工作薄。
1490260605250789.jpg
代码解析如下图
1490260617191405.jpg
代码如下:Dim a As Long, b As Long, c As Byte, d As ByteSub panding()For a = Selection.Row To ActiveSheet.UsedRange.Rows.Countd = 0For b = 6 To ActiveSheet.UsedRange.Columns.CountIf Cells(a, b) = "NG" Thend = d + 1End IfIf Application.WorksheetFunction.IsNumber(Cells(2, b)) And Application.WorksheetFunction.IsNumber(Cells(a, b)) ThenIf Cells(a, b) > Cells(2, b) Thend = d + 1End IfEnd IfIf Application.WorksheetFunction.IsNumber(Cells(3, b)) And Application.WorksheetFunction.IsNumber(Cells(a, b)) ThenIf Cells(a, b) 0 ThenCells(a, 5) = "NG"ElseCells(a, 5) = "OK"End IfNextEnd Sub |