验证具有两个值的多个文本框以汇总报告

时间:2019-02-13 16:02:26

标签: vba if-statement ms-word

对于我们的机器,我们有多个验证阶段。在将机器发送给客户之前,每个阶段都必须为“ OK”或“ N / A”。我有多个文本框,无论特定阶段是“确定”还是“否”(不是oke)还是“不适用”,它们都会在其中填充。

如果一切都是“ 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"

1 个答案:

答案 0 :(得分:0)

我想出了一个解决方法。它不是很漂亮,但是对我有用。每当有1个或多个“ NOK” 或空白字段“” 时,我都希望摘要中说“ NOK” 。这是下面的代码为我做的。

If DryCycle_status.Value = "NOK" Or Temp_status = "NOK" Or BackPressure_status.Value = "NOK" Or _
Filling_status = "NOK" Or Injection_status.Value = "NOK" Or HoldingPressure_status "NOK" _
Or CoolingTime_status.Value = "NOK" Or ClampingForce_status = "NOK" Or _
ProcessStability_status.Value = "NOK" Or AdditionalTesting_status = "NOK" _
DryCycle_status.Value = "" Or Temp_status = "" Or BackPressure_status.Value = "" Or _
Filling_status = "" Or Injection_status.Value = "" Or HoldingPressure_status = "" _
Or CoolingTime_status.Value = "" Or ClampingForce_status = "" Or _
ProcessStability_status.Value = "" Or AdditionalTesting_status = "" Then 
MouldTotal.Value = "NOK" Else MouldTotal.Value = "OK"