我正在尝试在 Google 电子表格中编写一个“罗马数字到十进制数字”函数。到目前为止,我已经设法使用以下代码使其工作:
function rom2num(inputRange) {
inputRange = inputRange.replace(/\bi\b/gi,1); //convert 'I' to '1'
return inputRange;
}
当输入仅为一个单元格时,这非常有效。但是,每当我尝试输入一个范围 (A1:B2) 时,我都会收到错误消息:“无法在对象中找到函数替换”。
我想要实现的一些示例:
Column A | Column with function
i, ii, iii | 1, 2, 3
Godfather II | Godfather 2
iv, v, vi | 4, 5, 6
Star Wars V | Star Wars 5
正如 Crayon 建议的那样,我可以选择在下面的单元格中重复该函数,但是,需要重新格式化的范围可能是 50 行,或者可能是 100 行,如果它们不被使用。我希望它尽可能自动化。:-)
我知道可以检索一系列单元格的信息,并仅使用以下代码在另一个单元格范围内返回该信息:
function copyRange(inputRange) {
return inputRange;
}
所以输入一个范围并输出相同的范围不是问题。问题是试图合并替换功能。我已经设法使用“toString()”函数更改了整个范围内的信息。然后我能够使用'split(“,”)'将输出分成几列,但我不希望它跨列传播,只是跨行。
因此,如果我能以某种方式将范围/数组转换为字符串,然后再转换回范围/数组...
是否可以在不使代码过于臃肿的情况下实现这一目标?(我是一个新手脚本编写者,更喜欢我的脚本简短,就像我上面的例子一样。)
如果我不清楚,我很抱歉。我习惯在这样的论坛上查找答案,但我自己不问问题!
谢谢!
编辑:终于意识到事情变得有点太复杂了,所以我只是接受了蜡笔的建议并使用了“拖动”方法。为我省了很多麻烦。谢谢您的帮助!!