我已经构建了一个在公式本身中使用R1C1表示法的电子表格。我已经成功地做了所有需要做的事情,而不必求助于宏或VBA(需要不同的文件格式,并且用户在打开文件时“启用宏”等)。
唯一的问题是我现在已经注意到,虽然Excel将其所有功能都转换为本地语言(我必须处理英语,葡萄牙语和西班牙语),但它不处理用于的字符串文字。 R1C1表示法。例如,INDIRECT("R[1]C[1]")
用葡萄牙语翻译为INDIRETO("R[1]C[1]")
,如果不是因为葡萄牙语R1C1实际上是L1C1,那就没问题了。
我假设我使用VBA这不会是一个问题,因为VBA没有翻译,我会认为R1C1实际上是R1C1而不管客户端语言。但是有可能在不必诉诸VBA的情况下做到这一点吗?
答案 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表的匹配更可靠。