根据对ComboBox的回答选择.OFT

时间:2018-05-15 20:29:20

标签: vba excel-vba access-vba excel

我创建了一个带有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'而不会使用其他两个。

1 个答案:

答案 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 ... <> ...时,通常会出现逻辑错误。