如何修复Excel中的溢出错误
您是否曾在 Excel 中输入公式,然后遇到 #洒! 错误?
当您在 Excel 公式中不正确地实现溢出数组的概念时,就会导致此错误。
这篇文章探讨了这种溢出概念,并讨论了与溢出公式相关的错误的修复方法。
推荐:如何修复Windows 11中的Windows无法连接到此网络错误
Excel 中的“溢出”是什么意思?
随着 2020 年 1 月 Excel 365 的发布,Excel 引入了溢出数组。
溢出的基本原理是您在单元格中输入单个公式,结果会在多个单元格中返回!
= A1:A2 * 10
您实际上是在告诉公式结果溢出到相邻单元格。您可以像上例一样在公式中包含一个范围来利用此行为。
这样的公式称为 溢出数组公式. 它使细胞增殖 A1
经过 10
并在公式单元格中显示结果。它还会将单元格 A2
经过 10
并在公式单元格下方的相邻单元格中显示结果!
什么原因导致 Excel 中出现溢出错误?
您将收到一份 #绽放! 当 Excel 无法使用足够的单元格来显示所有公式结果时,就会出现错误。
这通常是因为溢出被其他工作表内容阻止了。也可能是您的公式违反了 Excel 的系统限制或溢出的功能限制。
如何修复Excel中的溢出错误? [Causes and Solutions]
如何修复溢出错误取决于错误的根本原因。

您可以通过选择 #SPILL! 错误单元格上的错误图标来获取有关根本原因的更多信息。
您将探索溢出错误的这些可能原因:
- 溢出范围不为空
- 桌子内溢出
- 溢出范围包含合并单元格
- 泄漏范围未知
溢出范围不为空

溢出范围是将显示公式结果的单元格范围。如果这些单元格中已有内容,则公式无法覆盖该内容,您将收到 溢出范围不为空 错误。

您可以通过将溢出公式移离现有内容来解决此问题,以便有足够的空单元格来完成溢出。
您还可以通过移出内容或删除不相关的内容来释放溢出范围。
桌子内溢出

如果您尝试在表格内溢出,则始终会收到溢出错误。Excel 表格不支持溢出范围,因为表格有自己独特的语法。

最好的解决方法是将表格转换为范围或将公式完全移出表格。
选择表格并转到 表设计 选项卡并点击 转换为范围 按钮从 Excel 中删除表格但不删除数据。
推荐:在Microsoft Excel中选择可见单元格的5种方法
溢出范围包含合并单元格

合并单元格是 Excel 的另一个功能,可防止公式溢出。

解决这个问题的方法是 取消合并阻碍的合并单元格 或者移动公式,使得其溢出范围不包括合并单元格。
泄漏范围未知
有些公式会导致溢出错误,因为 Excel 无法确定溢出范围有多大或多小。

= SEQUENCE( RANDBETWEEN( 1 , 10 ) )
上述公式尝试生成一个具有不同行大小的序列列。
这 顺序 函数被称为动态数组公式函数,因为它总是返回溢出范围。
问题是它的溢出被不断重新计算的挥发性所打断 介于 函数。发生错误,因为溢出范围大小 顺序 无法确定。

唯一的解决方案是避免以影响溢出范围大小的方式使用易失性函数。
在此示例中,您可能需要计算 介于 一次在另一个单元格中(B2
),然后将该值粘贴到 顺序 功能。
溢出范围太大
Excel 每张表最多可处理 1,048,576 行和 16,384 列。这意味着任何超出该范围的溢出都会导致 溢漏范围过大 错误。

= A:A * 10
一个常见的例子是,当您尝试在第 2 行(或更高行)创建一个溢出数组公式并让它引用像上面那样的整个列时。
这 A:A
列最多包含 1,048,576 行。这意味着溢出范围也是 1,048,576 行。由于您的公式位于第 2 行,溢出范围超出 Excel 行数限制 1,因此发生错误。
您可以通过将公式移至第 1 行来避免错误。

= A2 * 10
更有效的修复方法是将公式更改为返回单个值(如上例所示),然后以传统方式复制该公式。
查找工作簿中的所有溢出错误
有多种方法可以查找工作簿中的溢出错误。
您可以使用常规 Excel 功能,例如 寻找 菜单或 去 基本搜索菜单。
还有 错误检查 专为错误审计构建的菜单。
您甚至可以使用 VBA 代码或 Office 脚本进行搜索。
查找菜单
使用以下方法查找溢出错误 寻找 菜单很像搜索任何其他值。

- 前往 家 选项卡和下拉菜单 查找和选择。

- 选择 寻找 或使用快捷键 Ctrl + F。

- 类型
#SPILL!
在里面 找什么 场地。 - 选择
Workbook
在里面 之内 落下。 - 选择 瓦尔
ues
来自 在看 落下。 - 点击 找到所有 您的结果将列在同一窗口的下部。

选择结果中的任意行即可直接转到该单元格!
转至菜单
这 去 菜单已经成为 Excel 的一部分。您可以利用一种特殊类型的 去 仅查找溢出错误等错误。

- 前往 家 选项卡并点击 查找和选择 落下。

- 选择 前往特别优惠 选项或使用快捷键序列 Ctrl + G 其次是 Alt + 年代 导航至 前往特别优惠 菜单。

- 选择 公式 并取消选中除以下之外的所有框 错误。
- 点击 好的 按钮。

现在,您可以看到工作表上选择的所有错误!
错误检查菜单
Excel 有一个专门用于错误检查的菜单。

- 在下面 公式 标签选择 错误检查。

- 点击 下一个 或者 以前的 按钮直到找到溢出错误!
推荐:如何在Excel中按颜色求和(公式和VBA)
虚拟专用网络
VBA 是 Excel 桌面版的编程语言。
VBA 代码包含可以搜索和检测特定于溢出的错误的语法:

- 打开 VBA 编辑器,转到 开发人员 Tab 并选择 Visual Basic 或者直接按 Alt + F11。您可能首先需要 启用 开发人员 标签 因为它默认是隐藏的。

- 前往 插入 菜单并选择 模块。

Sub FindSpillErrors()
Dim ws
Dim cell
For Each ws In ThisWorkbook.Worksheets
For Each cell In ws.UsedRange
If IsError(cell.Value) Then
If cell.Value = CVErr(xlErrSpill) Then
Debug.Print ws.Name & "!" & cell.Address
End If
End If
Next
Next
End Sub
- 双击新模块并将上述 VBA 代码粘贴到模块中。
代码循环遍历每张工作表中的每个非空单元格。 IsError
确定单元格是否包含错误,并根据 #洒 错误 CVErr(xlErrSpill)
。
溢出错误地址输出到立即窗口,使用 Debug.Print
。

- 确保 立即窗口 可以通过访问 看法 菜单并选择 立即窗口 选项。

- 单击代码中的任意位置以确保它将是运行的宏。
- 通过单击运行代码 玩 或按 F5。
看看 立即窗口 查找您的溢出错误的地址!
办公室脚本
如果您有 Microsoft 365 商业计划,Office Scripts 可为您提供适用于 Web 的 Excel 中的自动化功能。
可以使用 Office 脚本在工作簿中搜索溢出错误:
- 转到浏览器并在 Excel 网页版 中打开工作簿。

- 在下面 自动化 标签选择 新脚本。如果您没有看到 自动化 标签。

function main(workbook: ExcelScript.Workbook) {
let range = workbook.getActiveWorksheet().getUsedRange();
let rowCount = range.getRowCount();
let colCount = range.getColumnCount();
for (let row = 0; row
- 将上述脚本粘贴到 代码编辑器 窗格。
脚本将循环遍历活动工作表中的每个单元格。如果它发现 #SPILL!
错误值,它使用 console.log
将单元格地址输出到 输出 窗户。

- 通过点击运行脚本 跑步 按钮。
注意 输出 窗口底部的 代码编辑器 显示您的溢出错误位置!
如何关闭 Excel 中的溢出功能?
溢出行为是一个很好的特性,但有时您可能想恢复到传统的计算公式的方式。
=@ A:A * 10
您可以通过在公式中加入隐式交集运算符 (@
) 就像上面的例子一样。
=SINGLE(A:A) * 10
包括 @
运算符指示 Excel 以传统方式计算公式,而不会溢出。有一个等效函数称为 单身的。
但此功能会自动转换为 @
公式中的运算符。
结论
您已经了解了溢出如何帮助您创建单一公式来对您的工作表产生广泛的影响。
但这种能力也伴随着您可能遇到的所有溢出错误的缺点。
要牢记的最重要的事情是保持溢出范围内没有任何可能阻碍溢出的内容。
您还看到了一些技术,它们可以帮助您查找遇到的任何溢出错误,并提供一些选项来修复它们。
您可以选择不溢出,但如果不利用这种新的公式计算方式的强大功能,那将是一种遗憾!
你有没有遇到过 #洒! Excel 中出现错误了吗?您如何处理错误?请在评论中告诉我!