如果您具备使用 VBA 或 VBScript 的经验并且擅长脚本语法,可以在计算字段或计算字段(多个)工具的表达式类型参数中使用 VBScript 选项。 此选项还支持 ArcGIS Desktop 中使用计算字段工具和 VBScript 计算的旧版模型或脚本。
本主题着重于基于 VBScript 的计算字段示例。 要了解有关 Python 示例的详细信息,请参阅计算字段 Python 示例。 要了解有关 Arcade 表达式的详细信息,请参阅 ArcGIS Arcade 指南。 要了解有关 SQL 表达式的详细信息,请参阅计算字段值。
注:
VBScript 不允许显式声明任何数据类型,所有变量均属于隐式 Variant。 应移除与 Dim x as String 类似的语句或将其简化为 Dim x。
简单计算
仅通过一个短表达式就可以计算出多种计算结果。
VBScript 字符串函数
一系列 VBScript 字符串函数均支持使用字符串,包括 Left、InStr 和 Chr。 以下是“字段计算器”中常用的字符串函数的 VBScript 示例:
使用 Left 函数从字符串的左侧返回指定数量的字符。
Expression:
Left([MyField], 1)
使用 Right 函数从字符串的右侧返回指定数量的字符。
Expression:
Right([MyField], 1)
使用 Mid 函数使用起始位置和可选的字符数从字符串中返回指定数量的字符。
Expression:
Mid([MyField], 14, 4)
使用 InStr 函数返回一个字符串中第一个出现的子字符串的位置。
Expression:
InStr([MyField], " ")
使用 Replace 函数返回一个将指定子字符串替换为另一个子字符串的字符串。
Expression:
Replace([MyField], "#", "!")
使用 Chr 函数返回与指定字符代码关联的字符。
以下示例将换行符字符替换为感叹号。
Expression:
Replace([MyField], Chr(13), "!")
使用 & 运算符将两个字段值连接起来。
Expression:
[MyField1] & " " & [MyField2]
简单数学示例
VBScript 提供了处理数字的工具。
运算符 | 说明 | 示例 | 结果 |
---|---|---|---|
x + y | x 加上 y | 1.5 + 2.5 | 4.0 |
x - y | x 减去 y | 3.3 - 2.2 | 1.1 |
x * y | x 乘以 y | 2.0 * 2.2 | 4.4 |
x / y | x 除以 y | 3 / 2 | 1.5 |
x \ y | x 除以 y(整除) | 3 \ 2 | 1 |
x MOD y | x 模 y | 8 MOD 3 | 2 |
x ^ y | 以 x 为底,以 y 为指数的幂 | 2 ^ 3 | 8 |
将一个字段的值乘以 2。
[Rank] * 2
通过 VBScript 逻辑计算字段
可以使用 If、ElseIf 和 Else 语句将逻辑模式包含在代码块中。
按照字段值进行分类。
Expression:
density
Code Block:
Dim density
If [POP90_SQMI] < 100 Then
density = "low"
ElseIf [POP90_SQMI] < 300 Then
density = "medium"
Else
density = "high"
End If