激活单元格不适用于 onEdit(但它适用于 OnOpen)
Activate cell does not work on onEdit (but it does on 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();
and/or
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();
按预期工作,最后一行是 'highlighted',大小为 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();
}
}
我有这个非常简单的代码:
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();
and/or
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();
按预期工作,最后一行是 'highlighted',大小为 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();
}
}