在不同语言中使用R1C1表示法

时间:2014-01-08 11:32:09

标签: excel

我已经构建了一个在公式本身中使用R1C1表示法的电子表格。我已经成功地做了所有需要做的事情,而不必求助于宏或VBA(需要不同的文件格式,并且用户在打开文件时“启用宏”等)。

唯一的问题是我现在已经注意到,虽然Excel将其所有功能都转换为本地语言(我必须处理英语,葡萄牙语和西班牙语),但它不处理用于的字符串文字。 R1C1表示法。例如,INDIRECT("R[1]C[1]")用葡萄牙语翻译为INDIRETO("R[1]C[1]"),如果不是因为葡萄牙语R1C1实际上是L1C1,那就没问题了。

我假设我使用VBA这不会是一个问题,因为VBA没有翻译,我会认为R1C1实际上是R1C1而不管客户端语言。但是有可能在不必诉诸VBA的情况下做到这一点吗?

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,这就是我修复它的方法

在单独的隐藏表格中,我在两个单元格中输入此公式:

=LEFT(ADDRESS(1;1;1;0);1)

=MID(ADDRESS(1;1;1;0);3;1)

这给了我用于R1C1样式引用的两个字符,这里是“R”和“C”。在法语中,它给了我“L”和“C”。

然后我使用这些字符重新组合间接地址,例如使用CONCATENATE

答案 1 :(得分:1)

旧线程但我碰到了同样的问题。 Excel中公式的另一个巨大缺点,特别是考虑到“Rangée”是法语中“Ligne”的完全可接受的同义词,并且可以完全避免这个小问题。

我认为更明智的方法是尝试完全避免使用R1C1表示法。一种方法,如果你想用ROW()& COLUMN()(我的情况):

而不是:

OFFSET(INDIRECT("R"&ROW()&"C"&COLUMN()),-2,-2)

将会以法语失败(并且不会怀疑其他语言),请尝试:

OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-2,-2)

当然,这可能更多地取决于您的工作簿中有多少这些工作(如果您知道它们在哪里)。但这比基于单独的IMO表的匹配更可靠。