计算字段 VBScript 示例

如果您具备使用 VBA 或 VBScript 的经验并且擅长脚本语法,可以在计算字段计算字段(多个)工具的表达式类型参数中使用 VBScript 选项。 此选项还支持 ArcGIS Desktop 中使用计算字段工具和 VBScript 计算的旧版模型或脚本。

本主题着重于基于 VBScript 的计算字段示例。 要了解有关 Python 示例的详细信息,请参阅计算字段 Python 示例。 要了解有关 Arcade 表达式的详细信息,请参阅 ArcGIS Arcade 指南。 要了解有关 SQL 表达式的详细信息,请参阅计算字段值

注:

VBScript 不允许显式声明任何数据类型,所有变量均属于隐式 Variant。 应移除与 Dim x as String 类似的语句或将其简化为 Dim x

简单计算

仅通过一个短表达式就可以计算出多种计算结果。

VBScript 字符串函数

一系列 VBScript 字符串函数均支持使用字符串,包括 LeftInStrChr。 以下是“字段计算器”中常用的字符串函数的 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 逻辑计算字段

可以使用 IfElseIfElse 语句将逻辑模式包含在代码块中。

按照字段值进行分类。

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