磕头了!Microsoft VBScript 运行时错误 '800a0009' 下标越界

Text = WScript.Arguments(0)
Speaker = WScript.Arguments(1)

Set s = CreateObject("SAPI.SpVoice")

For Each Voice In s.GetVoices
I = I + 1

If InStr(Voice.GetDescription, Speaker) > 0 Then
    Set s.Voice = s.GetVoices.Item(I-1)
    Exit For
End If

Next

s.Speak Text

提示你下标越界了,可以一步一步输出看看是哪里的问题

Set s.Voice = s.GetVoices.Item(I-1)
这里你要判断是否存在对应元素


Text = WScript.Arguments(0)
Speaker = WScript.Arguments(1)

Set s = CreateObject("SAPI.SpVoice")
I=1
For Each Voice In s.GetVoices
I = I + 1

If InStr(Voice.GetDescription, Speaker) > 0 Then
    Set s.Voice = s.GetVoices.Item(I-1)
    Exit For
End If
Next

s.Speak Text

你代码不完整,i没有赋给初值