2013-11-27 96 views
0
Private Sub btn_Click 
Dim intAnswer as Integer 
If txtAddress<>"" Then 
intAnswer=Msgbox "Did you want to save", vbYesNo 
    If intAnswer=vbNo Then 
Else 
    do things 
End If 
End Sub 

注意第二個Then語句是空白的,我希望它去的else語句。我的大腦是糊狀的&我告訴自己最初做了SELECT CASE但我無法弄清楚這種方式。我最終做了以下&我不確定這是否是正確的程序/建議。嵌套如果然後語句,正確的方式來處理

Dim intAnswer as Integer 
If txtAddress<>"" Then 
intAnswer=Msgbox "Did you want to save", vbYesNo 
    If intAnswer=vbNo Then GoTo Start 
Else 
    GoTo Start 
End If 
Exit Sub 
Start: 
do things 
+0

什麼是'this'? –

+0

我澄清說,我認爲沒有必要詳細說明每一個角度,因爲這不在我所關注的範圍內 – greggmcfg

+0

那麼,理解什麼是給你一個正確的答案是重要的;)現在你已將'this'改爲'txtAddress' :) –

回答

3

有一個更短的方式:

If txtAddress<>"" Or Msgbox("Did you want to save", vbYesNo) = vbYes Then 
     'Do things 
End If 
+0

+ 1好得多:) –

+0

你的回答不正確,如果txtAddress <>「」評估爲false,它仍然需要「做事情」。我以爲我已經澄清了這一點,但我看到代碼可能有點誤導,如果需要,我可以更改它。 'do things'是多行代碼,我不想重複 – greggmcfg

+0

@greggmcfg:查看我的更新。我不確定我現在明白你的問題,因此不確定它是否解決了它......你能否用文字解釋在什麼情況下應該做什麼? –

0

怎麼樣?

If txtAddress="" and msgbox "Did you want to save?", vbYesNo = vbNo Then 
    GoTo Start 
ElseIf txtAddress <> "" 
    'do Other Things 
Else 'vbYes 
    'do Last Set of things 
End If 

Exit Sub 

Start: 
do things 
+0

這確實是澄清的另一種方式,不管我不想要什麼,問題都會要求你保存。我只希望在文本框中出現某些東西時。如果&goto現在確實是合適的解決方案,我正在考慮嵌套 – greggmcfg

0

我傾向於過度想到事情&而且我學習,所以我做了我這個更加混亂那麼它需要的是。我想了解嵌套if的概念,所以我沒有建議我想做什麼。我基本上想要檢查一個表單是否被填充,因爲我只知道一個新的/未使用的表單看起來像我是基於這個信息。下面是我所需要的:

Private Sub btn_Click 
If txtAddress<>"" Then 
    If Msgbox("Did you want to save", vbYesNo)=vbNo Then Exit Sub 
End if 

我想給彼得·艾伯特的「答案」,但他的代碼始終做的MSGBOX,其中清楚地在我的代碼沒有。我是一個白癡&在我的第一個地方寫錯了我的代碼,所以不理我