# 电子表格单元格执行

与其他传统电子表格一样，In-Sight 电子表格中单元格的执行顺序由单元格函数之间的关系和依赖关系动态确定。In-Sight 电子表格主要通过根据单元格的依赖关系对单元格求值来确定单元执行的顺序，其次是通过它们在电子表格中的位置来确定。

### 单元格依赖关系

在以下示例中，单元格 B2 和 A3 的值直接取决于 A2 的值。单元格 A4 间接依赖于 A2，因为它引用了 A3。每当 A2 中的值发生变化时，必须对 B2 和 A3 的值进行求值，然后是 A4。系统会自动创建内部执行树以跟踪单元依赖关系；当系统脱机时，只要修改电子表格，就会重建此树。

###### 例 1：简单依赖关系树

> A2 = 1
> A3 = A2+1
> A4 = A3+1
> B2 = A2+2

当单元格的值或表达式发生变化时，In-Sight 电子表格会在树中定位该单元格，并确定需要对哪些单元格重新求值。在本例中，如果 A2 中的值发生变化，则必须对所有依赖单元格（B2、A3 和 A4）重新求值；然而，如果单元格 B2 中的表达式发生变化，则无需更新其他单元格，因为没有单元格依赖 B2。

### 单元格执行顺序

计算依赖关系后，单元格将根据其在电子表格中的位置进行求值。单元格按行坐标（从左到右）排序，然后按列坐标（从上到下）排序

### 单元格执行顺序的例外情况

以下是正常单元格执行顺序的例外情况：

- 计时函数
- 具有非依赖单元格引用的函数

在执行树中，计时函数总是放在树的顶部，因为它们需要访问其他单元格中的旧数据。

有几个函数将单元格引用作为参数，但不建立任何依赖关系。返回被引用单元格的行坐标的行函数就是这些函数之一。

### 是什么触发了执行？

单元格在以下情况下执行：

- 已修改具有依赖的单元格。
- 发生外部事件，例如 触发器。
- 图形控件（例如按钮、复选框、EditInt）发出电子表格事件触发器的信号。

大多数视觉工具函数直接或间接依赖于 函数（默认单元格 A0）。每当采集新图像时，这些函数都会执行并返回新值。此外，每当触发图像采集或其他电子表格事件时，电子表格就会更新。