簡體   English   中英

使用不同語言的R1C1表示法

[英]Using R1C1 notation in different languages

我建立了一個電子表格,該電子表格在公式本身中使用R1C1表示法。 我已經成功完成了所有需要做的事情,而不必訴諸宏或VBA(它們需要不同的文件格式,並且用戶在打開文件時會“啟用宏”,等等)。

唯一的問題是,我現在注意到,盡管Excel將其所有功能轉換為本地語言(我必須處理英語,葡萄牙語,也許是西班牙語),但它不處理用於R1C1表示法的字符串文字。 。 例如,將INDIRECT("R[1]C[1]")葡萄牙語翻譯為INDIRETO("R[1]C[1]") ,如果不是因為葡萄牙語R1C1實際上是L1C1,這很好。

我假設我使用VBA不會有問題,因為VBA尚未翻譯,這意味着R1C1實際上是R1C1,而與客戶端語言無關。 但是有可能不必訴諸VBA來做到這一點嗎?

我遇到了相同的問題,這是解決問題的方法

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

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

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

這給了我兩個用於R1C1樣式參考的字符,這里是“ R”和“ C”。 用法語,它給我“ L”和“ C”。

然后,我使用這些字符來重新組成間接地址,例如使用CONCATENATE

舊線程,但我碰到了同樣的問題。 Excel中公式的另一個重大缺點,尤其是考慮到“Rangée”是法語中“ Ligne”的一個完全可以接受的同義詞,因此可以完全避免這種小問題。

我認為,進行此操作的更明智的方法是嘗試完全避免使用R1C1表示法。 一種方法,如果您嘗試使用ROW()和COLUMN()獲取相對位置(這是我的情況):

代替:

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

它將以法語(無疑會是其他語言)失敗,請嘗試:

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

當然,這可能更像是一項工作,具體取決於工作簿中有多少(以及是否知道它們在哪里)。 但這比基於單獨的表IMO進行匹配更可靠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM