如何在同一Google脚本(Google表)中运行多个ONEDIT功能



我一直在尝试多种不同的方式,没有任何方法。

我想要一个函数,当某人键入某些东西时,单元的内容会自动变形并消除所有口音。

例如:如果我键入"Áééââüú",它立即变成" aeioaauu"。

我尝试的以下情况:

  1. 用正常字母的口音更改字母,然后在同一oneDit中提高所有内容;
  2. 将不同oneDit中的函数分开;
  3. 只是一个在另一个脚本中调用函数的OneDit。

这是我的代码:

function onEdit(e){
  try{
    myA(e);
    myE(e);
    myUpper(e);
  }
  catch(e){
    if(e){}}
}
function myFunction(){
  var app= SpreadsheetApp;
  var targetSheet= app.getActiveSpreadsheet().getSheetByName("Sheet1");
  onEdit();
} 

函数" mya"," mye"one_answers" myupper",每个函数都在分开的脚本中,它们是:

function myUpper(e) {
   e.range.setValue(e.value.toUpperCase());
}
function myE(e) {
  e.range.setValue(e.value.replace(new RegExp("[[éèêëÉÈÊË]", 'g'),"E"));
}
function myA(e) {
  e.range.setValue(e.value.replace(new RegExp("[[áàâäãÁÀÂÄÃ]", 'g'),"A"));
}

运行整个代码,只有函数" my"起作用。换句话说,只有带有重音的字母" e"变成" e"。

我在做什么错?

预先感谢。

您可以使用一个onEdit()触发器来完成此操作。

function onEdit(e){
  var ss = e.source;
  var sheet = ss.getSheetByName('Sheet1');
  var value = e.value;
  var range = e.range;
  value = value.replace(new RegExp("[[éèêëÉÈÊË]", 'g'),"E");
  value = value.replace(new RegExp("[[áàâäãÁÀÂÄÃ]", 'g'),"A");
  value = value.toUpperCase();
  range.setValue(value);
}

相关内容

最新更新