我一直在尝试许多不同的方法,但都没有效果。
我想要一个函数,当有人键入内容时,单元格的内容自动变为大写并消除所有重音。
例如:如果我输入“áéîõÂÃüÚ”,则立即变为“ AEIOAAUU”。
我尝试过以下几种情况:
这是我的代码:
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”和“ 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"));
}
运行整个代码,只有函数“ myE”起作用。换句话说,只有带有重音符号的字母“ e”才变成“ E”。
我在做什么错了?
谢谢。
答案 0 :(得分:0)
您可以使用一个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);
}