2 回答
TA贡献1831条经验 获得超4个赞
在上面回答了我自己的问题检查。不过还是谢谢你,Aung49。我当然仔细检查过。我想我只是需要睡一会儿。
function onChange(e){
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var FirstEmptyA = getFirstEmptyRow('A:A');
Logger.log(FirstEmptyA);
var FirstEmptyC = getFirstEmptyRow('C:C');
Logger.log(FirstEmptyC);
var dif = Math.abs(FirstEmptyA - FirstEmptyC);
Logger.log(dif);
var EmptyArow =ss.getRange(FirstEmptyA ,3)
var validationList = SpreadsheetApp.newDataValidation().requireValueInList(['OASIS','LAT','CQ','MDR'], true).build()
if(FirstEmptyA - FirstEmptyC < 0){
var rangedif =ss.getRange(FirstEmptyA+1,3,dif)
rangedif.clearDataValidations();
rangedif.clearContent();
}
else if(FirstEmptyC - FirstEmptyA < 0) {
var rangedif =ss.getRange(FirstEmptyC +1,3,dif)
rangedif.setDataValidation(validationList);
rangedif.setValue('OASIS');
}
}
function getFirstEmptyRow(range) {
var spr = SpreadsheetApp.getActiveSpreadsheet();
var column = spr.getRange(range);
var values = column.getValues();
var ct = 0;
while ( values[ct] && values[ct][0] != "" ) {
ct++;
}
return (ct);
}
TA贡献1765条经验 获得超5个赞
我看到您getFirstEmptyRow(range)
返回零索引的行。但是您可以使用它来获取空 A 行,var EmptyArow =ss.getRange(FirstEmptyA,3)
其中的行将为您提供空行上方的行。尝试修复它并让我们知道它是否有效。
添加回答
举报