激活单元格不工作在onEdit(但它在OnOpen)



我有这段非常简单的代码:

function onEdit(e) {
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getSheetByName('DaSheet');
var lastWeightRow = sheet.getLastRow();
sheet.getRange(lastWeightRow+1,1).activate();   //Move the cursor/scroll
var normalStyle = SpreadsheetApp.newTextStyle().setFontSize(10).setBold(false).build();
var attentionStyle = SpreadsheetApp.newTextStyle().setFontSize(24).setBold(true).build();
var lastWeightRowNum = sheet.getLastRow();  // 
var row = sheet.getRange(lastWeightRowNum-1, 1, 1, sheet.getMaxColumns());
row.setTextStyle(normalStyle);
row = sheet.getRange(lastWeightRowNum, 1, 1, sheet.getMaxColumns());
row.setTextStyle(attentionStyle);
//Move the cursor/scroll try again at the end
var firstEmptyCellString =  `A${lastWeightRowNum+1}`;
sheet.getRange(firstEmptyCellString).activate();
};

问题出在这一行:

sheet.getRange(lastWeightRow+1,1).activate(); 

sheet.getRange(firstEmptyCellString).activate();

以上两个语句都不能移动游标。不知何故,我无法在onEdit函数中移动光标,而在onOpen函数中,任何语句都可以正常工作。为什么不在onEdit中呢?

注意:为了验证onEdit函数是否真的被调用,我在

之间切换
var attentionStyle = SpreadsheetApp.newTextStyle().setFontSize(24).setBold(true).build();

var attentionStyle = SpreadsheetApp.newTextStyle().setFontSize(48).setBold(true).build();

按预期工作,最后一行'高亮显示',大小为24或48。

游标结束于LastRow + 1

function onEdit(e) {
//e.source.toast("Entry")
const sh = e.range.getSheet();
if (sh.getName() == 'DaSheet') {
//e.source.toast('Flag1')
var lr = sh.getLastRow();
var normalStyle = SpreadsheetApp.newTextStyle().setFontSize(10).setBold(false).build();
var attentionStyle = SpreadsheetApp.newTextStyle().setFontSize(24).setBold(true).build();
sh.getRange(lr - 1, 1, 1, sh.getMaxColumns()).setTextStyle(normalStyle);
sh.getRange(lr, 1, 1, sh.getMaxColumns()).setTextStyle(attentionStyle);
sh.getRange(`A${lr + 1}`).activate();
}
}

相关内容

  • 没有找到相关文章