因此,我正在尝试编写一个脚本,该脚本在编辑时将检查单元格以查看其是否包含“#”,如果不包含则清除单元格。除了在某些情况下,当将值粘贴到单元格中时,有时单元格格式会更改时,我基本上都在使用它。我不能保证粘贴的格式是正确的,所以我试图添加一种方式来编辑单元格格式,然后检查“#”。这是我到目前为止的内容:
function onEdit(e){
var sheet = SpreadsheetApp.getActive().getSheetByName('CAHT');
var lr=sheet.getLastRow()
var vals = sheet.getRange(2,6,lr,1).getValues()
var newVals=[]// New array of numbers only and blank where text.
for(i=0;i<vals.length;i++){
if(typeof vals[i][0]=="number"){//If a number keep the number.
vals[i][0]=""
newVals.push([vals[i][0]])}
else{ //If not a number create a blank value.
newVals.push([vals[i][0]])}
}
var set= sheet.getRange(2,6,newVals.length,1).setValues(newVals)//Reset column E.
// sheet.getRange(2,5,newVals.length,1).setNumberFormat('@STRING@')//If you want the numbers formated as a string remove //
Logger.log(newVals)
};
我对此并不十分有经验,因此大部分内容都是根据我在网上找到的内容拼凑而成的,并根据需要进行了一些微调。任何帮助或建议对此表示极大的赞赏。先感谢您!
答案 0 :(得分:0)
这是想要什么吗?
function onEdit(e){
//e.source.toast('Entry');
var sh=e.range.getSheet();
if(sh.getName()!='CAHT')return;
if(e.range.columnStart==6 && e.range.rowStart>1) {
//e.source.toast('Past Return');
var vA=sh.getRange(2,6,sh.getLastRow()-1,1).getValues();
var newVals=[];
for(var i=0;i<vA.length;i++){
if(typeof vA[i][0]=="number"){
//e.source.toast('number');
newVals.push([vA[i][0]])
}else{
//e.source.toast('not number');
newVals.push([null]);
}
}
sh.getRange(2,6,newVals.length,1).setValues(newVals);
e.source.toast(newVals.map(function(r){return r[0]}).join(),'newVals',-1);
}
}