Vbscript 类型不匹配:';UBound';

Vbscript 类型不匹配:';UBound';,vbscript,asp-classic,Vbscript,Asp Classic,为什么我会犯这个错误 类型不匹配:“UBound” 该规范是在其他地方提出的,但没有任何关于其不起作用的报告。看起来它应该能工作,但它不能 这里显示的代码就是您所需要的一切。通过简单地运行代码,您将看到错误。问题不是很清楚,但从我所看到的来看,有两个主要问题 函数UBound()需要一个有效数组返回上限,否则将引发类型不匹配错误 这里的问题是,函数需要一个数组,但传递给它的是一个字符串(如注释中所述)。如果字符串包含有效的字符串数组(可通过分隔符解释为一维数组的字符串),则可以使用Split()

为什么我会犯这个错误

类型不匹配:“UBound”

该规范是在其他地方提出的,但没有任何关于其不起作用的报告。看起来它应该能工作,但它不能


这里显示的代码就是您所需要的一切。通过简单地运行代码,您将看到错误。

问题不是很清楚,但从我所看到的来看,有两个主要问题

  • 函数
    UBound()
    需要一个有效数组返回上限,否则将引发
    类型不匹配
    错误

    这里的问题是,函数需要一个
    数组
    ,但传递给它的是一个
    字符串
    (如注释中所述)。如果字符串包含有效的字符串数组(可通过分隔符解释为一维数组的字符串),则可以使用
    Split()
    函数将字符串转换为有效数组,并
    IsArray()
    检查是否返回了有效数组

  • 函数
    JumbleArray()
    返回一个
    数组
    ,该数组不能仅使用
    Response.Write()
    输出到页面。要输出它,首先需要使用
    IsArray()
    检查它是否为有效数组,然后使用
    Join()
    输出值,或者使用循环遍历数组中的每个元素

  • 调用函数时,请尝试以下操作:

    strTestArray = "1,2,3,4,5,6,7,8"
    Dim TestArray: TestArray = Split(strTestArray, ",")
    If IsArray(TestArray) Then
      TestArray = JumbleArray(TestArray)
      If IsArray(TestArray) Then
        Call Response.Write(Join(TestArray, ","))
      End If
    Else
      Call Response.Write("Not a valid array")
    End If
    

    这个问题不是很清楚,但从我看来,有两个主要问题

  • 函数
    UBound()
    需要一个有效数组返回上限,否则将引发
    类型不匹配
    错误

    这里的问题是,函数需要一个
    数组
    ,但传递给它的是一个
    字符串
    (如注释中所述)。如果字符串包含有效的字符串数组(可通过分隔符解释为一维数组的字符串),则可以使用
    Split()
    函数将字符串转换为有效数组,并
    IsArray()
    检查是否返回了有效数组

  • 函数
    JumbleArray()
    返回一个
    数组
    ,该数组不能仅使用
    Response.Write()
    输出到页面。要输出它,首先需要使用
    IsArray()
    检查它是否为有效数组,然后使用
    Join()
    输出值,或者使用循环遍历数组中的每个元素

  • 调用函数时,请尝试以下操作:

    strTestArray = "1,2,3,4,5,6,7,8"
    Dim TestArray: TestArray = Split(strTestArray, ",")
    If IsArray(TestArray) Then
      TestArray = JumbleArray(TestArray)
      If IsArray(TestArray) Then
        Call Response.Write(Join(TestArray, ","))
      End If
    Else
      Call Response.Write("Not a valid array")
    End If
    

    函数需要一个数组。你正在传递一个字符串。数组是通过选择复选框组合而成的,那么它怎么可能是其他的呢?@WilliamK向我们展示实际的代码,而不是你认为的问题所在。可能是重复的。这就是实际的代码。但是,如果您引用表单提交的结果来创建数组,那么数组的定义与这里完全相同。尝试上面的代码,您将得到相同的错误。函数需要一个数组。你正在传递一个字符串。数组是通过选择复选框组合而成的,那么它怎么可能是其他的呢?@WilliamK向我们展示实际的代码,而不是你认为的问题所在。可能是重复的。这就是实际的代码。但是,如果您引用表单提交的结果来创建数组,那么数组的定义与这里完全相同。尝试上面的代码,您将得到相同的错误。