试图使脚本仅在一个选项卡上运行,而不影响所有选项卡-由于某种原因,该脚本似乎在多个选项卡上产生了影响。
尝试声明选项卡的名称,在这种情况下为:
“ 1。计划”
但它崩溃了,尝试运行脚本时出现错误。有什么想法吗?
function onEdit(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var datass = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("3. Current_Team")
var activeCell = ss.getActiveCell();
if(activeCell.getColumn() == 4 && activeCell.getRow() > 1){
activeCell.offset(0, 1).clearContent().clearDataValidations();
var makes = datass.getRange(1, 1, 1, datass.getLastColumn()).getValues();
var makeIndex = makes[0].indexOf(activeCell.getValue()) + 1;
if(makeIndex != 0) {
var validationRange = datass.getRange(3, makeIndex, datass.getLastRow());
var validationRule = SpreadsheetApp.newDataValidation().requireValueInRange(validationRange).build();
activeCell.offset(0, 1).setDataValidation(validationRule);
}
}
}
答案 0 :(得分:1)
尝试一下:
function onEdit(e){
var sh=e.range.getSheet();
if(sh.getName()!='1. Scheduling')return;
var datash=e.source.getSheetByName("3. Current_Team")
if(e.range.columnStart==4 && e.range.rowStart>1){
e.range.offset(0, 1).clearContent().clearDataValidations();
var makes=datash.getRange(1, 1, 1, datash.getLastColumn()).getValues();
var makeIndex=makes[0].indexOf(e.value) + 1;
if(makeIndex != 0) {
var validationRange = datash.getRange(3, makeIndex, datash.getLastRow());
var validationRule = SpreadsheetApp.newDataValidation().requireValueInRange(validationRange).build();
e.range.offset(0, 1).setDataValidation(validationRule);
}
}
}