2014-02-12 67 views
-1

我試着寫這將取決於值改變的結果的宏。 的數字是5位數字和只能是1,2或3如果值包含一定數量

如果數字都是1,則結果將是通。

如果數字包含2個,那麼結果將是行動。

如果數字包含3,則結果將失敗。

例如:

11111結果爲

11211結果爲動作

32111結果失敗

這是代碼(下面),其我已經創建,但我不知道如何使用該STR控制或者即使我應該使用

Private Sub result() 
    Dim points As Integer, result As String 

    Me.txtresult.Value = Val(cboImage.Value) & Val(cbofruit.Value) & Val(cboveg.Value) & Val(cboProcedure.Value) & Val(cboDescription.Value) 
    points = Val(Me.txtresult.Value) 

    Select Case points 
     Case InStr(1, 1) 
      result = "Pass" 
     Case InStr(1, 2) 
      result = "Action" 
     Case InStr(1, 3) 
      result = "Fail" 
    End Select 
    Me.txtresult.Value = result 
End Sub 

感謝

回答

1

檢查是否有效。我已經取代了Select塊與If

Private Sub result() 
Dim points As Integer, result As String 

Me.txtresult.Value = Val(cboImage.Value) & Val(cbofruit.Value) & Val(cboveg.Value) & Val(cboProcedure.Value) & Val(cboDescription.Value) 
points = Val(Me.txtresult.Value) 

If InStr(points, "3") > 0 Then 
result = "Fail" 
Else 
    If InStr(points, "2") > 0 Then 
    result = "Action" 
    Else 
    result = "Pass" 
    End If 
End If 
Me.txtresult.Value = result 
End Sub 
+0

謝謝sooo很多工作很好 –

0

爲什麼你需要爲這個宏?這樣的形式可以給出期望的結果:

=IF(ISNUMBER(FIND("3",A1)),"FAIL",IF(ISNUMBER(FIND("2",A1)),"ACTION","PASS")) 

假設你的值在單元格A1中。

+0

感謝您的答覆,但我的價值不會去一個小區,我使用具有形狀5下拉只具有1 2 3選擇名單從這樣如果其中任何一個有一個2它會使它成爲一個行動,如果任何一個數字有三個,那將是失敗 –