VBScript数组?如果那么

时间:2015-12-07 16:47:52

标签: arrays vbscript

我是VBScript的新手,我们使用的解决方案有VBScript来操作数据

如果那么其他不是问题,但是当我有一个大数据集时,输出很少我想使用某种类型的数组,我可以将值存储在一个数组中,然后仍然使用if then else

非常基本的要求但是在环顾四周似乎对语法有点混乱

简单,如果那么其他没问题,但是如果是那么就必须写很多

    If Input1 = "A1" Then
    Output0 = "A"

    ElseIf Input1 = "B1" Then
    Output0 = "B"

    Else
    Output0 = "C"
    End If

我需要达到的是,请注意值不相同,并且不需要从下面开始修剪

If Input1 = "A1,A2,A3" Then
Output0 = "A"

ElseIf Input1 = "B1,B2,B3" Then
Output0 = "B"

Else
Output0 = "C"
End If

使用SQL我会做IN语句

2 个答案:

答案 0 :(得分:3)

VBscript将输入映射到输出的工具是Dictionary。所以使用一个,如:

>> Set d = CreateObject("Scripting.Dictionary")
>> d("A1") = "A"
>> d("A2") = "A"
>> d("B1") = "B"
>> d("C")  = "C"
>> For Each k In Split("C B1 A2 B2 A1")
>>     If d.Exists(k) Then
>>        WScript.Echo k, d(k)
>>     Else
>>        WScript.Echo k, "???"
>>     End If
>> Next
>>
C C
B1 B
A2 A
B2 ???
A1 A

答案 1 :(得分:0)

为了完整性,您还可以使用Select Case语句,该语句允许Case中的表达式列表,例如

Select Case Input1
    Case "A1", "A2", "A3"
        Output0 = "A"
    Case "B1", "B2", "B3"
        Output0 = "B"
    Case "C1", "C2", "C3"
        Output0 = "C"
    Case Else
        Output0 = "D"
End Select