2016-04-07 18 views
0
Private Sub cbo_Loc_Change() 
    Dim Date1 As Date 
    Dim Row As Integer 
    Row = ActiveCell.Row 
    If cbo_Loc.Value = TDS Then 
    Date1a = Cells(Row, 5).Value 
    T1a = DateAdd("ww", 6, Date1a) 
    Cells(Row, 6).Formula = T1a 
    T1b = DateAdd("ww", 8, Date1a) 
    Cells(Row, 7).Formula = T1b 
    ElseIf cbo_Loc.Value = SS Then 
    T1a = DateAdd("M", 18, Date1a) 
    Cells(Row, 6).Formula = T1a 
    T2b = DateAdd("m", 6, Date1a) 
    Cells(Row, 7).Formula = T1b 
    End If 

End Sub 

上記のIf-Elseステートメントは、if条件が満たされたときにdate1aに6時間を追加し、else1条件が満たされた場合。 ElseIf条件が満たされると、その下のステートメントは実行されていません。誰もがそれを見て、何が問題かもしれないかを見つけてください。ElseIf条件が真の場合、else ifの文は実行されません。

おかげで、

答えて

0

あなたはIfステートメントがfalseと評価されたとき、のElseIf文は「Date1aは」割り当てた値を持っていないので、のElseIf文の「Date1a」の値を設定する必要があります。 1が動作すると、あなたの問題を解決する必要がありますどちらの

Private Sub cbo_Loc_Change() 

Dim Date1 As Date 
Dim Row As Integer 

Row = ActiveCell.Row 

If cbo_Loc.Value = TDS Then 
    Date1a = Cells(Row, 5).Value 
    T1a = DateAdd("ww", 6, Date1a) 
    Cells(Row, 6).Formula = T1a 
    T1b = DateAdd("ww", 8, Date1a) 
    Cells(Row, 7).Formula = T1b 
ElseIf cbo_Loc.Value = SS Then 
    Date1a = Cells(Row, 5).Value 
    T1a = DateAdd("M", 18, Date1a) 
    Cells(Row, 6).Formula = T1a 
    T2b = DateAdd("m", 6, Date1a) 
    Cells(Row, 7).Formula = T1b 
End If 
End Sub 

または

Private Sub cbo_Loc_Change() 

Dim Date1 As Date 
Dim Row As Integer 

Row = ActiveCell.Row 
Date1a = Cells(Row, 5).Value 

If cbo_Loc.Value = TDS Then 
    T1a = DateAdd("ww", 6, Date1a) 
    Cells(Row, 6).Formula = T1a 
    T1b = DateAdd("ww", 8, Date1a) 
    Cells(Row, 7).Formula = T1b 
ElseIf cbo_Loc.Value = SS Then 
    T1a = DateAdd("M", 18, Date1a) 
    Cells(Row, 6).Formula = T1a 
    T2b = DateAdd("m", 6, Date1a) 
    Cells(Row, 7).Formula = T1b 
End If 
End Sub 

:あなたはそれを次のいずれかの方法を行うことができます。

+0

こんにちはジェイ、応答に感謝します。私はこれらの両方のオプションを試しました。しかし、問題は解決していません。私はデバッグモードでそれを見ていると私はelse if条件の後に、プログラムが直接終了することを確認します。それで、ここに何か他のものがありませんか? – Abhi0609

+0

あなたのElseIfステートメントは、実際に「真」である場合にだけ見るために、これを試してみてください:入れ、終了場合は、上記の : エルス のMsgBox(「のElseIfはFALSEです!」) –

+0

あなたはまた、値文字列の前後に引用符を配置する必要があるかもしれません「TDS」および「SS」。例:cbo_Loc.Value = "TDS"およびcbo_Loc.Value = "SS"。 –

関連する問題