【发布时间】:2019-07-07 12:57:31
【问题描述】:
对于我们的机器,我们有多个验证阶段。每个阶段都需要“OK”或“N/A”才能将机器发送给客户。我有多个文本框,它们填写特定阶段是“OK”还是“NOK”(不是 oke)还是“N/A”。
如果一切都“OK”或“N/A”那么MouldTotal.value="OK" Else MouldTotal.value="NOK"
我无法让它工作,也没有找到适用于这种情况的方法。
提前感谢您的帮助。
对于下面的第一个代码,我收到了错误 13 类型匹配。
If DryCycle_status.Value = "OK" Or "N/A" And Temp_status = "OK" Or "N/A" And _
BackPressure_status.Value = "OK" Or "N/A" And _
Filling_status = "OK" Or "N/A" And Injection_status.Value = "OK" Or "N/A" _
And HoldingPressure_status = "OK" Or "N/A" _
And CoolingTime_status.Value = "OK" Or "N/A" And ClampingForce_status = "OK" Or "N/A" And _
ProcessStability_status.Value = "OK" Or "N/A" And AdditionalTesting_status = "OK" Or "N/A" _
Then MouldTotal.Value = "OK" Else MouldTotal.Value = "NOK"
我也试过下面的代码。这个没有导致错误,但也没有对代码做任何事情。它似乎只是读取了MouldTotal 的值。
编辑;它似乎只读取DryCycle_status,因为当我将其更改为“NOK”时,MouldTotal 确实更改为“NOK”。当我更改任何其他“状态”时,它不会影响MouldTotal
If DryCycle_status.Value = "OK" Or DryCycle_status.Value = "N/A" And _
Temp_status = "OK" Or Temp_status.Value = "N/A" And _
BackPressure_status.Value = "OK" Or BackPressure_status.Value = "N/A" And _
Filling_status = "OK" Or Filling_status.Value = "N/A" And _
Injection_status.Value = "OK" Or Injection_status.Value = "N/A" And _
HoldingPressure_status = "OK" Or _
HoldingPressure_status.Value = "N/A" And CoolingTime_status.Value = "OK" Or _
CoolingTime_status.Value = "N/A" And ClampingForce_status = "OK" Or _
ClampingForce_status.Value = "N/A" And _
ProcessStability_status.Value = "OK" Or ProcessStability_status.Value = "N/A" _
And AdditionalTesting_status = "OK" Or AdditionalTesting_status.Value = "N/A" _
Then MouldTotal.Value = "OK" Else MouldTotal.Value = "NOK"
【问题讨论】:
-
不幸的是,您没有提供有关 HOW 它“不起作用”的详细信息。这使得故障排除非常困难。但 FWIW 一目了然......这个公式
If DryCycle_status.Value = "OK" Or "N/A"在 VBA 中是不允许的。它必须是If DryCycle_status.Value = "OK" Or DryCycle_status.Value = "N/A"- 必须用每个比较运算符说明比较的双方 - 没有捷径。 -
@CindyMeister;抱歉,我没有详细说明为什么它不起作用。我收到了
Error 13 type match。我也尝试过您建议的方式(我将编辑到原始帖子中。
标签: vba if-statement ms-word