我创建了一个带有3个选项的组合框。我有3种类型的.OFT与这个组合框相关联。组合框名为Study_String
。
Dim Study_Stage As String
If Study_Stage <> "Start-Up" Or Study_Stage <> "Closed at IRB" Then
Set objMsg = OutApp.CreateItemFromTemplate("X:\Users\Test Realm\OFT Template Maintenance.oft")
End If
If Study_Stage = "Maintenance" Or Study_Stage <> "Closed at IRB" Then
Set objMsg = OutApp.CreateItemFromTemplate("X:\Users\Test Realm\OFT Template Start Up.oft")
End If
If Study_Stage <> "Maintenance" Or Study_Stage <> "Start-Up" Then
Set objMsg = OutApp.CreateItemFromTemplate("X:\Users\Test Realm\OFT Template Closure.oft")
End If
目前看来,它只是使用'OFT TEMPLATE CLOSURE.OFT'而不会使用其他两个。
答案 0 :(得分:1)
我想你想要ElseIf 看看这个
If Study_Stage <> "Start-Up" Or Study_Stage <> "Closed at IRB" Then
Set objMsg = OutApp.CreateItemFromTemplate("X:\Users\Test Realm\OFT Template Maintenance.oft")
ElseIf Study_Stage = "Maintenance" Or Study_Stage <> "Closed at IRB" Then
Set objMsg = OutApp.CreateItemFromTemplate("X:\Users\Test Realm\OFT Template Start Up.oft")
ElseIf Study_Stage <> "Maintenance" Or Study_Stage <> "Start-Up" Then
Set objMsg = OutApp.CreateItemFromTemplate("X:\Users\Test Realm\OFT Template Closure.oft")
End If
在您的代码中,每个if块都将执行。然后一个运行最后赢。
还 -
你的条件毫无意义。我不知道这背后的逻辑,但当你看到... <> ... Or ... <> ...
时,通常会出现逻辑错误。