听起来超级简单,但我无法弄清楚。我有一个脚本,用于更新内置在单元格中的注释。问题是我希望它以注释为基础。因此,获取便笺的最后一行还是获取第一行,对我而言,格式化的格式都无关紧要。问题在于它覆盖了先前的注释。
function Note() {
var spreadsheet = SpreadsheetApp.getActive();
var timezone = Utilities.formatDate(new Date(), "GMT-4", "M/dd/yy', 'h:mm a"); // Get the current time;
spreadsheet.getActiveRange().setNote('Notes:\n\n-updated file on ' + timezone + '\n\n' + '-');
};
理想情况下,我希望将此注释放在注释的顶部,而不要覆盖注释的任何其他部分。这样,如果您愿意,它只是运行中的笔记或日志。我将把它添加到我正在运行的许多其他功能中,以便每次在该文件上运行一个功能时都有一个日志。
答案 0 :(得分:0)
尝试一下:
function appendNote(note) {
if(!note) {
var response=SpreadsheetApp.getUi().prompt("Append a note:")
var note=response.getResponseText();
}
if(note) {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var ts=Utilities.formatDate(new Date(),Session.getScriptTimeZone(), "yyyyMMdd HH:mm:ss");
sh.getActiveRange().setNote(ts + note + '\n\n' + sh.getActiveRange().getNote());
}
}
答案 1 :(得分:0)
这对我有用。只需检查注释是否存在,如果存在,则重写注释,但是在添加新文本之前。
function Note() {
var spreadsheet = SpreadsheetApp.getActive();
var ss = spreadsheet.getSheets()[0];
var timezone = Utilities.formatDate(new Date(), "GMT-4", "M/dd/yy', 'h:mm a"); // Get the current time;
var range = ss.getActiveRange();
var note = range.getNote();
if (note) {
note = note + '\n\n-updated file on ' + timezone + '\n\n';
range.setNote(note);
}else {
range.setNote('Notes:\n\n-updated file on ' + timezone + '\n\n');
}
}