2016-03-01 175 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