权威的Excel范围语法参考

对不起,如果这已经问过,但我找不到它。 我正在寻找所有可用作参考的有效string的权威性描述,例如“A1:C5”,“$ A:$ A”,$ A2“等等。这似乎是一个非常基本的东西,我试图find它,浪费了很多时间,只能find一些“有用的”例子,但没有提及。

我不知道是否有格式列表,因为实际上只有2:A1格式和R1C1格式。 在使用A1:C3时,实际上并没有指定范围格式,因为:实际上是范围操作符。

$ A $ 1,$ A1,A $ 1的变体就是 – 变体,标识复制引用时,$之前的坐标不应该改变,否则坐标可能相对于副本发生变化。

R1C1更复杂,因为它允许相对性。 R3C2是对第3行第2列(A1表示法中的B3)的绝对引用,而在R1C1引用中使用大括号[]表示它相对于来自单元格R3C2的当前单元格R [-2] C [1]会给R1C3(C1)。

差点忘了 还可以在另一个工作表中引用单元格。 'Sheet2的'!IV256

我用

(((\w*)|(\'[^\']*\')|(\"[^\"]*\"))!)?\$?([az]{1,3})\$?(\d+) 

作为用于识别A1格式的单元格引用的正则expression式

问题是有各种各样的运算符(Range,Intersect,隐式相交等),函数(INDEX,OFFSET,CHOOSE,INDIRECT +用户定义的函数),Defined Names和结构化表引用等等,都可以被去参考提供有效的范围参考。 所以做一个完整的工作意味着parsing任意的Excel公式。 而且它也因Excel版本而异。

如果你所要做的只是使用标准的显式范围引用,那么通常的技巧就是将string转换为R1C1表示法并使用它。 Excel文档中对R1C1引用的语法进行了相当好的描述。

还有一个可用的Excel公式的BNF描述,但我放错了参考。

“它用于识别在工作表中插入新的行或列时可能需要修改的单元格引用”

如果使用Excel live插入行/列(而不是使用其他应用程序入侵工作簿),则任何引用将自动更新到新地址。