我正在尝试编写一个可以根据值更改结果的宏。 这些数字是5位数,只能是1,2或3
如果数字全部为1则结果将通过。
如果数字包含2,那么结果就是行动。
如果数字包含3,则结果将失败。
例如:
11111结果传递
11211结果是动作
32111结果失败
这是我创建的代码(下面),但我不知道如何使用InStr控件,或者即使我应该使用它
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
由于
答案 0 :(得分: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
答案 1 :(得分:0)
为什么你需要一个宏呢?像这样的公式可以得到所需的结果:
=IF(ISNUMBER(FIND("3",A1)),"FAIL",IF(ISNUMBER(FIND("2",A1)),"ACTION","PASS"))
假设您的值在单元格A1中。