使用For循环插入带TRUE/FALSE的复选框及通配符问题排查
问题:正则通配符匹配失效,求解释
业务背景
我做了个新业务记录表格,逻辑是:各月度工作表里有「新业务标记」复选框,勾选后该行数据会自动追加到NEW BUSINESS表,同时要在对应承保商的列插入一个已勾选的复选框。
现状说明
之前代码里因为counter拼写错误导致循环跑不起来,修正后循环正常了,但现在carrierArray里的正则通配符匹配不管用——换成固定字符串匹配就没问题。
修正后的代码
function onEdit2(e) { const sh = e.range.getSheet(); if (sh.getName() != "QUOTES IN PROCESS" && sh.getName() != "NEW BUSINESS" && e.range.columnStart == 2 && e.value == "TRUE") { e.source.toast("New Business Entered"); const [a,b,c] = sh.getRange(e.range.rowStart,3,1,3).getValues()[0]; var d = sh.getRange(e.range.rowStart, 15).getValue(); const dsh = e.source.getSheetByName("NEW BUSINESS"); var data = [d,a,b,c]; dsh.appendRow(data); var lastRow = dsh.getLastRow(); var carrier = sh.getRange(e.range.rowStart, 6).getValue(); const carrierArray = [/.*AIG*./, /.*Amwins.*/, /.*American Bankers.*/, /.*Chubb.*/, /.*Nationwide Private Client.*/, /.*Orchid.*/, /.*Progressive.*/, /.*Jewelers Mutual.*/, /.*Quirk.*/, /.*Lemonade.*/, /.*RLI.*/, /.*RT Specialty.*/, /.*Safeco.*/, /.*Travelers.*/, /.*TWIA.*/, /.*.*/]; for(var counter = 0; counter <= 16; counter = counter + 1) { if (carrier.match(carrierArray[counter])) { dsh.getRange(lastRow, counter+5, 1, 1).insertCheckboxes().check(); } else { dsh.getRange(lastRow, counter+5, 1, 1).insertCheckboxes(); }; } } }
相关参考截图说明
- 月度工作表示例:呈现带有新业务复选框的月度工作表结构
- NEW BUSINESS表预期输出:展示目标工作表中对应承保商列复选框已勾选的预期效果
内容的提问来源于stack exchange,提问作者Branden Hance
相关产品推荐
相关产品推荐

