写IF,ELSEIF ELSE

时间:2014-11-09 18:50:19

标签: json vba if-statement

我试着写一个VBA If语句 我正在检查是否存在某些JSON节点。

有三种类型,第一节点,延续节点和格式错误的空节点。

它一直挂在第一个上面。

If Not jSonRoot.child("MediaType").child("first") Is Nothing Then  
    'First Pass  
ElseIf Not jSonRoot.child("second") Is Nothing Then  
    'Continuation  
Else  
    'Json is nothing, malformed.  
End If  

1 个答案:

答案 0 :(得分:1)

我猜有时候,没有MediaType个孩子;在这种情况下,第一个If会爆炸,因为您试图在.child("first")上致电Nothing

如果我是对的,可悲的是,你必须将第一个条件分成单独的If语句,因为VBA没有And的短路:

If Not jSonRoot.child("MediaType") Is Nothing Then  
    If Not jSonRoot.child("MediaType").child("first") Is Nothing Then  
        'First Pass  
    Else
        'Handle case where there's a MediaType but no .child("first")
    End If
ElseIf Not jSonRoot.child("second") Is Nothing Then  
    'Continuation  
Else  
    'Json is nothing, malformed.  
End If