2017-05-28 95 views
0

Ekkehard.Horner幫助了我很多與下面的代碼(我已經修改)。但是現在我正在尋找一種方法來在每次顯示MsgBox "message 1"時添加一個計數器。不同的MsgBox每次迭代後

<html> 
<head> 
<title>Sync Tool</title> 
<HTA:APPLICATION 
    APPLICATIONNAME="Sync Tool" 
    ID="SyncTool" 
    VERSION="1.0.0" 
    BORDER="dialog" 
    MAXIMIZEBUTTON="no" 
    MINIMIZEBUTTON="no" 
    SCROLL="no" 
    SINGLEINSTANCE="yes" 
    CONTEXTMENU="no" 
    SELECTION="no"/> 
</head> 

<script language="VBScript"> 
Set objShell = CreateObject("WScript.Shell") 

Sub Window_OnLoad 
    Dim width, height 
    width = 330 
    height = 310 
    self.ResizeTo width, height 
    self.MoveTo (screen.AvailWidth-width)/2, (screen.AvailHeight-height)/2 
End Sub 

Sub OnClickButtonSyncNow() 
    ' Box A 
    If BoxAA.checked Then 
     MsgBox "BoxAA" 
    Else 
     'Do nothing 
    End If 

    If BoxAB.checked Then 
     MsgBox "BoxAB" 
    Else 
     'Do nothing 
    End If 

    If BoxAC.checked Then 
     MsgBox "BoxAC" 
    Else 
     'Do nothing 
    End If 

    If BoxAD.checked Then 
     MsgBox "BoxAD" 
    Else 
     'Do nothing 
    End If 

    If BoxAE.checked Then 
     MsgBox "BoxAE" 
    Else 
     'Do nothing 
    End If 

    ' Box B 
    If BoxBA.checked Then 
     MsgBox "BoxBA" 
    Else 
     'Do nothing 
    End If 

    If BoxBB.checked Then 
     MsgBox "BoxBB" 
    Else 
     'Do nothing 
    End If 

    If BoxBC.checked Then 
     MsgBox "BoxBC" 
    Else 
     'Do nothing 
    End If 

    If BoxBD.checked Then 
     MsgBox "BoxBD" 
    Else 
     'Do nothing 
    End If 

    If BoxBE.checked Then 
     MsgBox "BoxBE" 
    Else 
     'Do nothing 
    End If 

    Dim bF : bF = False 
    Dim c1 
    For Each c1 In Split("A B C D E F G H I J") 
     Dim n : n = c1 
     Dim b : Set b = document.getElementById(n) 
     If b.Checked Then 
      bF = True 
     End If 
    Next 
    If bF Then 
     MsgBox "all done" 
    Else 
     MsgBox "message 1" 
    End If 
End Sub 

Sub ExitTool() 
    window.close() 
End Sub 
</script> 

<body bgcolor="firebrick"> 
<style type="text/css"> 
.tg {border-collapse:collapse;border-spacing:0;} 
.tg th{font-family:Arial, sans-serif; font-size:14px; font-weight:normal; padding-top:0px ;padding-right:20px; padding-bottom:0px; padding-left:0px ;border-style:solid; border-width:0px; overflow:hidden; word-break:normal;} 
.tg td{font-family:Arial, sans-serif; font-size:14px; padding-top:5px ;padding-right:10px; padding-bottom:0px; padding-left:0px ;border-style:solid; border-width:0px; overflow:hidden; word-break:normal;} 
.tg .tg-header{color:#FFFB00; font-size:22px; font-weight:bold; font-family:Verdana, Geneva, sans-serif !important;} 
.tg .tg-text{color:white; font-family:Verdana, Geneva, sans-serif !important; vertical-align:top} 
.button {height:50px; width:136px; font-weight:bold; background-color:#555555; border: 2px solid #FFFB00; color:white; text-align:center; text-decoration:none; display:inline-block; font-size:16px;} 
</style> 
<table class="tg"> 
    <tr> 
    <th class="tg-header">Box A</th> 
    <th class="tg-header">Box B</th> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAA" id="A">AA</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBA" id="B">BA</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAB" id="C">AB</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBB" id="D">BB</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAC" id="E">AC</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBC" id="F">BC</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAD" id="G">AD</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBD" id="H">BD</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAE" id="I">AE</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBE" id="J">BE</td> 
    </tr> 
</table> 
<br> 
<input type="button" class="button" name="SyncNow" id="SyncNow" value="Sync Now" onclick="OnClickButtonSyncNow"> 
<input type="button" class="button" name="Exit" id="Exit" value="Exit" onclick="ExitTool"> 
</body> 
</html> 

我在尋找的結果是這樣的:

If bF Then 
    MsgBox "all done" 
    window.close() 
Else 
    MsgBox "message 1" 'counter + 1 
ElseIf counter = 2 Then 
    MsgBox "message 2" 'counter + 1 
ElseIf counter = 3 Then 
    MsgBox "message 3" 'counter + 1 
ElseIf counter = 4 Then 
    MsgBox "message 4" 'counter + 1 
ElseIf counter = 5 Then 
    MsgBox "message 5" 'no more counting needed because of window.close() 
    window.close() 
End If 

我喜歡嘗試不同Do..Loop的東西,但我從來沒有計數器超出1 真的在努力瞭解統計的基礎知識VBScript中。

+0

當點擊一個按鈕,所有選項都被取消話,就說明消息1。但我要完成的,是每次按鈕顯示新郵件點擊並且所有複選框仍未選中,並且需要在5封郵件後停止。我將在今晚晚些時候更新我的第一篇文章,以添加整個HTA。 – WatskeBart

+0

剛剛在第一篇文章中加入完整的HTA – WatskeBart

回答

1

您需要一個全局變量來保留過程調用和數組中包含使用計數器作爲索引訪問的消息的計數。更改您的代碼是這樣的:

<script language="VBScript"> 
Dim ctr : ctr = 0 
messages = Array("message 1", _ 
    "message 2", _ 
    "message 3", _ 
    "message 4", _ 
    "aborting" 
) 
... 
Sub OnClickButtonSyncNow 
    ... 
    If bF Then 
     MsgBox "all done" 
     window.Close 
    Else 
     MsgBox messages(ctr) 
     If ctr >= 4 Then window.Close 
     ctr = ctr + 1 
    End If 
End Sub 
... 
</script> 
+0

首先,感謝您糾正我的文章,英文不是我的第一語言:) 其次,我想我沒有足夠的解釋我想完成什麼,或者我只是看不到/理解你的答案。 當用戶點擊「SyncNow」按鈕並且「bF」爲「False」時,會顯示一個「MsgBox」,告訴用戶忘記選擇複選框。我正在尋找的是當用戶再次點擊'SyncNow'按鈕時,它必須顯示另一條消息,告訴用戶他/她仍然沒有選擇任何複選框。並且在5條消息之後,我將關閉HTA,因爲用戶顯然不兼容:) – WatskeBart

+0

我認爲我談論一個櫃檯可能是誤導和錯誤的。 – WatskeBart

+0

@WatskeBart我做了一些小的調整,但是AFAICS的代碼應該已經完成​​了剛剛描述的內容。如果它不請描述結果與預期的不同。你是否想要每次迭代都有不同的消息? –