当前代码不起作用
function onEdit() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Class');
var level = sheet.getRange('K3').getValue();
var class = sheet.getRange('L3').getValue();
if (class === "Warlock") {
sheet.getRange('A7:D7').breakApart();
sheet.getRange('A7:D7').mergeAcross();
} else if (class === "Fighter") {
sheet.getRange('A7:D7').breakApart();
sheet.getRange('A7:B7').mergeAcross();
} else {
}
这是说要根据class
来分解和合并单元格,并且无法识别并且什么也没有发生。调试器说很好,但是我似乎看不到什么不起作用。
答案 0 :(得分:1)
您break
和Apart
和merge
处于同一范围。因此,它已分解并合并。因此,似乎什么都没有发生:如果它之前被合并过,它将在中断后最后保持合并。
答案 1 :(得分:1)
如果以这种方式运行,它将在术士和战斗机之间切换,并且您会看到合并中的细微变化,尤其是突出显示A7:D7时。我只是在A1中插入了一个复选框以使其切换。
function onEdit(e) {
e.source.toast('Flag1');//remove after debug
var sh=e.range.getSheet();
if(sh.getName()!='Sheet1')return;
var class = sh.getRange('L3').getValue();
e.source.toast('Flag2');//remove after debug
if (class=="Warlock") {
e.source.toast('Flag3');//remove after debug
sh.getRange('A7:D7').breakApart();
sh.getRange('A7:D7').mergeAcross();
sh.getRange('L3').setValue('Fighter');//remove after testing
sh.getRange('A7:D7').setBorder(true,true,true,true,true,true);//remove after testing
sh.getRange('A7:D7').setBackground('#ffff00');//remove after testing
} else if (class=="Fighter") {
e.source.toast('Flag4');//remove after debug
sh.getRange('A7:D7').breakApart();
sh.getRange('A7:B7').mergeAcross();
sh.getRange('L3').setValue('Warlock');//remove after testing
sh.getRange('A7:B7').setBorder(true,true,true,true,true,true);//remove after testing
sh.getRange('A7:D7').setBackground('#ffffff');//remove after testing
sh.getRange('A7:B7').setBackground('#ff00ff');//remove after testing
}
}