2014-01-08 25 views
5

我已經構建了一個電子表格,它在公式本身中使用R1C1表示法。我已經成功地完成了所有需要做的事情,而無需求助於宏或VBA(這需要不同的文件格式,並且用戶在打開文件時「啓用宏」等)。在不同語言中使用R1C1表示法

唯一的問題是,我現在已經注意到,雖然Excel將其所有功能翻譯成本地語言(我必須處理英語,葡萄牙語和西班牙語),但它不處理使用的字符串文字爲R1C1表示法。例如,INDIRECT("R[1]C[1]")被葡萄牙語翻譯爲INDIRETO("R[1]C[1]"),如果葡萄牙語R1C1實際上不是L1C1,那很好。

我假設我是使用VBA這不會是一個問題,因爲VBA沒有被翻譯,我認爲R1C1實際上是R1C1,不管客戶端語言如何。但有沒有可能做到這一點,而不必訴諸於VBA?

回答

3

我碰到了同樣的問題,這裏是我如何固定它

在一個單獨的隱藏的工作表,我在兩個單元格輸入公式:

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

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

這給我使用的兩個字符對於R1C1風格的參考,這裏是「R」和「C」。在法語中,它給了我「L」和「C」。

我然後使用這些字符以重新組織間接不會忽略,例如用CONCATENATE

1

舊線程,但我碰到了同樣的問題。 Excel中公式的另一個缺點是,特別是考慮到「Rangée」是法語中「Ligne」的完全可接受的同義詞,並且可以完全避免這個小問題。

我認爲一個更明智的方法是繼續嘗試完全避免R1C1表示法。一種方式,如果你想獲得與ROW相對位置()& COLUMN()(這是我的情況):

相反的:

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

將在法國(和毫無疑問會失敗其他語言),嘗試:

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

當然,這可能是取決於有多少這些都是在您的工作簿(如果你知道他們在哪裏與否)更多的作業。但是這比基於單獨的表IMO的匹配更可靠。