Google Sheets onEdit大写脚本功能



我欣赏这个团队的集体智慧。

我在网上找到了这些代码片段,并试图将它们应用到我的情况中,绝不打算抄袭任何人…

我想把单元格中的每个单词都大写。我从onEdit(e)函数调用以下脚本。什么也不做。这看起来不太对,显然我遗漏了重要的数据…

function onEdit(e) { TitleCase(e); }
function TitleCase(e) {
return e.toString().split(/b/).map(function (word) {
return e ? e.charAt(0).toUpperCase() + e.slice(1).toLowerCase() : '';
}).join('');
}

我是个新手,非常感谢您的指导。

吉姆

修改点:

  • 当您想从OnEdit的简单触发器运行TitleCase的脚本时,需要直接将值放入单元格。

  • 在脚本中,e是事件对象。因此,使用该对象,检索值并将其放入单元格。

  • 在你的TitleCase的脚本中,我认为它几乎是正确的。但是,我认为return e ? e.charAt(0).toUpperCase() + e.slice(1).toLowerCase() : '';e应该是word

  • 从您对How would it be further modified to only perform this for one specific column?的附加请求来看,在这种情况下,需要检查编辑的列。

当上面的点被反射到脚本中时,它变成如下所示:

修改脚本:

使用此脚本时,请将文本放在单元格中。这样,脚本就运行了。

function onEdit(e) {TitleCase(e);}
function TitleCase(e) {
const columnNumber = 1; // Please set the specific column number. For example, 1 is the column "A".
const range = e.range;
if (range.getColumn() != columnNumber) return;
const value = range.getValue().toString().split(/b/).map(function(word) {
return word ? word.charAt(0).toUpperCase() + word.slice(1).toLowerCase() : '';
}).join('');
range.setValue(value);
}

引用:

  • 简单触发
  • 事件对象
  • setValue(值)

最新更新