对表达式列表求值,并返回一个 Variant 类型的值或与列表中第一个为 True 的表达式相关联的表达式。
语法
切换 (expr-1, value-1 [, expr-2, value-2 ] ...[, expr-n, value-n ] )
Switch 函数语法具有以下参数:
| 参数 | 说明 |
|---|---|
| expr | 必需。 要求值的变量表达式。 |
| value | 必需。 如果相应的表达式为 True,则要返回的值或表达式。 |
备注
Switch 函数参数列表由表达式和值对组成。 从左到右计算表达式,并返回与第一个要计算为 True 的表达式关联的值。 如果部件未正确配对,将出现运行时错误。 例如,如果 expr-1 为 True,则 Switch 返回 值-1。 如果 expr-1 为 False,但 expr-2 为 True,则 交换机 返回 值 2,依此类推。
如果出现以下情况,交换机将返回 Null 值:
- 没有一个表达式为 True。
- 第一个 True 表达式具有相应的值 Null。
Switch 计算所有表达式,即使只返回其中一个表达式。 因此,您应该注意不良副作用。 例如,如果任何表达式的计算结果为除以零的错误,则会出现错误。
查询示例
| Expression | 结果 |
|---|---|
| SELECT ProductSales.ProductID, Switch ([ProductID]="PRO_XYZ1","First",[ProductID]="PRO_XYZ2","Two",[ProductID]="PRO_XYZ1","Ten") AS testSwitch FROM ProductSales; | 返回“ProductID”,计算“Switch”公式中的表达式,并使用所有“True”表达式的定义值切换现有值。 例如:“PRO_XYZ1”被“First”代替,“PRO_XYZ2”被“Two”代替,依此类推。 |
VBA 示例
注意
下面的示例演示了在Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请在“搜索”旁边的下拉列表中选择“开发人员参考”,然后在搜索框中输入一个或多个术语。
本示例使用 Switch 函数返回与城市名称匹配的语言名称。
Function MatchUp (CityName As String)
Matchup = Switch(CityName = "London", "English", _
CityName = "Rome", "Italian", _
CityName = "Paris", "French")
End Function