我最近看到了一篇关于这个错误的帖子,因为无法重现该错误,所以帖子被关闭了。我昨晚也遇到了同样的错误,而且很容易重现。我不确定这两者之间有什么联系,但以下是我遇到的情况。
我试图确定可到达的最远行。例如,即使你的工作表只有默认的 1000 行,你也可以写入=ROW(OFFSET(A1,9999,))
reach A10000
。它会返回 10000。经过反复试验,我发现可以使用嵌套的 来获取最远行OFFSET
。
=row(offset(offset(offset($A$1,B1,),C1,),D1,))
最后可到达的行是第 行2,147,483,647
。如果我尝试转到2,147,483,649
或更远,就会出现OFFSET 计算结果为超出范围的错误。但就在那之前,我发现了一个虫洞。没错,我尝试2,147,483,648
使用到达第 行=row(offset(offset(offset($A$1,700000000,),700000000,),747483647,))
,结果返回的是-2,147,483,648
。您可以在下面看到结果(E 列包含用于启用或禁用公式的复选框)。
B | 碳 | D | 埃 | F | 格 |
---|---|---|---|---|---|
7亿 | 7亿 | 747483646 | 真的 | 2147483647 | =if(E1,行(偏移量(偏移量(偏移量($A$1,B1,),C1,),D1,)),) |
7亿 | 7亿 | 747483647 | 真的 | -2147483648 | =if(E2,行(偏移量(偏移量(偏移量($A$1,B2,),C2,),D2,)),) |
7亿 | 7亿 | 747483648 | 真的 | #参考! | =if(E3,行(偏移量(偏移量(偏移量($A$1,B3,),C3,),D3,)),) |
它就像虫洞一样,通向纸张宇宙的另一边。我可以在那一行左右移动,甚至可以回到这一边,但我无法在那一边上下移动任何行。确实很奇怪,但没什么危害,我打算报告。
然而,后来当我尝试打开我的个人插件时,出现了以下运行时错误。异常:访问 ID 为 #### 的文档时,服务电子表格失败。[行:77,函数:myGlobalConfig,文件:core/lib/Config。
在费尽心思寻找问题根源之后,我突然冒出个念头,想看看虫洞是不是问题根源。结果也确实如此。我激活那个特定公式时收到了错误提示。禁用那个公式后,问题就消失了。
我甚至在绑定脚本中创建了一个基本函数,用于检索工作表的名称并使用 Toast 显示它。当激活中间那个公式时,出现了相同的错误,得出了负行的值。关闭后,错误就消失了。
这与之前提到的另一篇文章有联系吗?有人知道为什么这一行是负数吗?