2016-03-01 177 views
1

我正在將VBScript腳本合併到我的HTML中。基本上我現在所做的是在頁面加載時出現一些輸入框,要求用戶輸入存儲在數組中的四種顏色。後來,我使用我創建的函數在頁面上顯示顏色。該函數的工作原理與我在爲數組中的每個單獨元素調用它時所應該的一樣,但我的For Each循環不執行任何操作。For Each ...循環不工作

這裏是收集來自用戶的顏色信息的代碼:

Option Explicit 
Dim colour(4) 

colour(0) = Inputbox("Colour number 1") 
Msgbox("The colour you entered is: " & colour(0)) 
colour(1) = Inputbox("Colour number 2") 
Msgbox("The colour you entered is: " & colour(1)) 
colour(2) = Inputbox("Colour number 3") 
Msgbox("The colour you entered is: " & colour(2)) 
colour(3) = Inputbox("Colour number 4") 
Msgbox("The colour you entered is: " & colour(3)) 

這是劇本我再打上在頁面上顯示的顏色,沒有循環,這不正是我想要的它:

Function printText(words) 
    document.write("<h3 class='bodyheader'>Let's add the text '" & words & _ 
     "' to our website</h3>") 
End Function 

printText(colour(0)) 
printText(colour(1)) 
printText(colour(2)) 
printText(colour(3)) 

當我實現我For Each圈我沒有得到任何類型的輸出在所有的頁面的那個區域保持空白。我得到的錯誤是

非法轉讓:「元素」

Function printText(words) 
    document.write("<h3 class='bodyheader'>Let's add the text '" & words & _ 
     "' to our website</h3>") 
End Function 

For Each element In colour 
    printText(colour(element)) 
Next 

什麼毛病我的語法在循環或者是我失蹤的另一個問題?

+0

當您使用的每個,您不使用標爲你的陣列,爲每個您通過陣列中的每個元素循環,在你的情況下,「元素」變量是一個完整的對象 – ElenaDBA

回答

1

只需使用:

For Each elm In colour 
    printText(elm) 
Next 

或使用:

For i=0 To UBound(colour) 
    printText(colour(i)) 
Next 
+0

使用第一種方法,我仍然收到「非法賦值:'元素'」錯誤,並使用第二種方法收到「Object required:'color'」錯誤。任何想法爲什麼會這樣?它允許我調用顏色來單獨打印,所以看起來很奇怪,使用循環會產生變化,除非我在這裏錯過了某些東西。 –

+2

也許「元素」是VBScript中的保留字?我用「榆樹」代替了它。現在就試試 – ElenaDBA

+1

至於另一個錯誤,你是否將數組聲明在同一個文件中? – ElenaDBA