为了账号安全,请及时绑定邮箱和手机立即绑定

最好能用VBA代码在一个单元格内显示OK数另一个单元格显示NG数据,用函数解决也可以。

最好能用VBA代码在一个单元格内显示OK数另一个单元格显示NG数据,用函数解决也可以。

白衣染霜花 2023-04-22 18:14:22
有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和21i = 1With Sheet1    Do        i = i + 1        Set rng = .Range(.Cells(startRow, i), .Cells(endRow, i))        ok = 0: ng = 0        For Each 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 WithEnd Sub


查看完整回答
反对 回复 2023-04-25
?
元芳怎么了

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

查看完整回答
反对 回复 2023-04-25
  • 2 回答
  • 0 关注
  • 219 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信