如果您具备使用 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