以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  andalso 与systemmemu的bug  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=116222)

--  作者:lur320
--  发布时间:2018/3/21 14:34:00
--  andalso 与systemmemu的bug
如下代码正常运行。
 If SystemMenu=False Then
        If r("orderchanged")=True Then \'变更订单提醒
            RibbonTabs("功能区1").Groups("newAndHoldSO").Items("ordernotice").pressed=True
        Else
            RibbonTabs("功能区1").Groups("newAndHoldSO").Items("ordernotice").pressed=False
        End If
    End If

如下代码报错,不存在“功能区1”

        If r("orderchanged")=True andalso SystemMenu=False Then \'变更订单提醒
            RibbonTabs("功能区1").Groups("newAndHoldSO").Items("ordernotice").pressed=True
        Else
            RibbonTabs("功能区1").Groups("newAndHoldSO").Items("ordernotice").pressed=False
        End If
 


--  作者:有点甜
--  发布时间:2018/3/21 14:41:00
--  

你语法逻辑问题。必须这样写代码的

 

If SystemMenu=False Then
    If r("orderchanged")=True Then \'变更订单提醒
        RibbonTabs("功能区1").Groups("newAndHoldSO").Items("ordernotice").pressed=True
    Else
        RibbonTabs("功能区1").Groups("newAndHoldSO").Items("ordernotice").pressed=False
    End If
End If

 

不然你的逻辑就变了,每次都会执行到 RibbonTabs("功能区1") 的代码,自然报错


--  作者:lur320
--  发布时间:2018/3/21 16:44:00
--  
对了,每次都会执行else之后的代码,自然错了。而不是andalso的问题。