Board logo

標題: 請問如何卡控尺寸是否合規 [打印本頁]

作者: 52ee24    時間: 2015-8-7 14:31     標題: 請問如何卡控尺寸是否合規

請問各位大大
我需要篩選尺寸的資料是否合規定
尺寸的範圍為156mm~156.5mm
含156mm不含156.5mm
我寫的如下

A = Range("a3").CurrentRegion.Rows.Count
Dim N As Variant, O As Variant, P As Variant, Q As Variant
For i = 1 To A
N = Range("N" & i + 2)
O = Range("O" & i + 2)
P = Range("P" & i + 2)
Q = Range("Q" & i + 2)
If N >= 156 < 156.5 And O >= 156 < 156.5 And P >= 156 < 156.5 And Q >= 156 < 156.5 Then
    Range("bq" & i + 2) = "尺寸合規"
ElseIf N < 156 >= 156.5 And O < 156 >= 156.5 And P < 156 >= 156.5 And Q < 156 >= 156.5 Then
    Range("bq" & i + 2) = "尺寸不合規"
End If
Next i
跑不出來結果
請各位達人幫幫忙了
謝謝
作者: mark15jill    時間: 2015-8-7 16:49

本帖最後由 mark15jill 於 2015-8-7 16:57 編輯
請問各位大大
我需要篩選尺寸的資料是否合規定
尺寸的範圍為156mm~156.5mm
含156mm不含156.5mm
我寫的如 ...
52ee24 發表於 2015-8-7 14:31


提供以下範例 請依需求自行修改

程式說明
方式1 採個別判斷

方式2採積分累積制
符合條件(>=156   或 <156.5) 積分1
不符合 積分0


[attach]21663[/attach]
  1. Sub olo()
  2. Dim ds1, ds2 As Integer
  3. Dim xx1, xx3, xx5, xx7 As Integer
  4. ds1 = 156
  5. ds2 = 156.5
  6. '方式1
  7. For xx = 1 To 9 Step 2

  8.     For yy = 3 To Cells(2, xx).CurrentRegion.Rows.Count
  9.         qq = Cells(yy, xx)
  10.         If qq <> "" Then
  11.             If Cells(yy, xx) <= ds1 Or Cells(yy, xx) < ds2 Then
  12.                 Cells(yy, xx + 1) = "合格"
  13.             Else
  14.                 Cells(yy, xx + 1) = "不合格"
  15.             End If
  16.         End If
  17.     Next
  18. Next

  19. '方式二
  20. For x10 = 3 To Cells(2, 1).CurrentRegion.Rows.Count
  21. sss = 0
  22.     xx1 = Cells(x10, 1): xx3 = Cells(x10, 3): xx5 = Cells(x10, 5): xx7 = Cells(x10, 7)
  23.     If xx1 <= ds1 Or xx1 < ds2 Then sss = sss + 1
  24.     If xx3 <= ds1 Or xx3 < ds2 Then sss = sss + 1
  25.     If xx5 <= ds1 Or xx5 < ds2 Then sss = sss + 1
  26.     If xx7 <= ds1 Or xx7 < ds2 Then sss = sss + 1
  27.     If sss = 4 Then Cells(x10, 10) = "合格": Cells(x10, 11) = sss Else Cells(x10, 10) = "不合格": Cells(x10, 11) = sss
  28.    
  29. Next
  30. End Sub
複製代碼
[attach]21662[/attach]

PS 方法1似乎有問題,請自行修改XDD
作者: Scott090    時間: 2015-8-8 07:47

回復 1# 52ee24

這樣可以嗎?
    If N >= 156 and  N< 156.5 And O >= 156 and O < 156.5 And P >= 156 and P < 156.5 And Q >= 156 and Q < 156.5 Then
          Range("bq" & i + 2) = "尺寸合規"
    ElseIf N < 156 or N>= 156.5 or O < 156 or O >= 156.5 or P < 156 or P >= 156.5 or Q < 156 or Q >= 156.5 Then
         Range("bq" & i + 2) = "尺寸不合規"
    End If
作者: 52ee24    時間: 2015-8-10 16:26

謝謝各位大德的幫忙
把它改成如下就可以用了
謝謝喔
Dim N As Variant, O As Variant, P As Variant, Q As Variant
For i = 1 To A
N = Range("N" & i + 2)
O = Range("O" & i + 2)
P = Range("P" & i + 2)
Q = Range("Q" & i + 2)
If N >= 156 And N < 156.5 And O >= 156 And O < 156.5 And P >= 156 And P < 156.5 And Q >= 156 And Q < 156.5 Then
    Range("bq" & i + 2) = "尺寸合規"
ElseIf N < 156 Or N >= 156.5 And O < 156 Or O >= 156.5 And P < 156 Or P >= 156.5 And Q < 156 Or Q >= 156.5 Then
    Range("bq" & i + 2) = "尺寸不合規"
End If
Next i




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)