如何解决如何仅清除数据而不清除Google表格上的公式?
我正在建立一个每日清单,该清单每天晚上12点使用触发器触发一个新标签。代码在下面-但是我需要代码来清除那些单元格的内容,而不是基础公式。我认为不是“ var rangetoclear”,而是其他原因,但我在帮助页面上找不到。
有人可以帮忙吗?
代码如下:
/* DASHBOARD---------------------------------------------------------------------------------------------------
Edit this section to change the dates tabs are created for and the range of data that will be cleared each time! */
var numberOfDaysForwardForNextTab = 0
var rangeToClear = 'F8:I1003'
// -------------------------------------------------------------------------------------------------------------
var ss = SpreadsheetApp.getActiveSpreadsheet(); // get the spreadsheet object
SpreadsheetApp.setActiveSheet(ss.getSheets()[0]); // set the first sheet as active
// Sets date for add tab & date for delete tab
var MILLIS_PER_DAY = 1000 * 60 * 60 * 24;
var today = new Date();
var addWeek = Utilities.formatDate(new Date(today.getTime() + (numberOfDaysForwardForNextTab * MILLIS_PER_DAY)),"GMT+1","MM-dd-yy");
// Adds tab
ss.duplicateActiveSheet(); //Copies current sheet
ss.renameActiveSheet(addWeek); //Renames sheet to date from above
ss.moveActiveSheet(1); //Moves sheet to the first position
// Prepares tab (clears old content)
var sheet = ss.getSheetByName(addWeek);
sheet.getRange(rangeToClear).clearContent()
}
解决方法
一种解决方案是获取源工作表的公式以及要清除的范围rangeToClear
,然后在清除其内容后将公式复制到刚创建的重复工作表中:
const rangeToClear = 'F8:I1003';
const source_sheet = ss.getSheets()[0];
const formulas = source_sheet.getRange(rangeToClear).getFormulas();
const sheet = ss.getSheetByName(addWeek);
sheet.getRange(rangeToClear).clearContent()
sheet.getRange(rangeToClear).setFormulas(formulas)
参考:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。