在这里苦苦挣扎的初学者,试图让我的剧本完成,而我现在却迷失了方向。让我先发布我的脚本。
function dailyclear(e)
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Today');
sheet.copyTo(ss)
var nusheet = ss.getSheetByName('Copy of Today')
var value = nusheet.getRange("B2").getCell(1,1).getValue()
SpreadsheetApp.setActiveSheet(nusheet)
Logger.log("Current index of sheet: %s", nusheet.getIndex())
ss.moveActiveSheet(2);
nusheet.setName(value);
//Clear "Today"
var lastrow = sheet.getLastRow()
sheet.deleteRows(8, lastrow-7)
//Set Date Value for "Today"
var dd = Utilities.formatDate(new Date(), "GMT-5", "MM/dd/yy");
sheet.getRange("B2").getCell(1,1).setValue(dd);
}
我希望我的脚本要做的是在//清除行之前有一个if / else语句,就像这样......"如果A8中有任何文本那么运行sheet.deleterows(8,lastrow -7),ELSE跳过设置日期。"我希望这是有道理的。基本上我想删除除了前7位以外的所有行,如果在A8中输入了任何数据,否则不要尝试删除任何内容,因为它只会对我产生错误并锁定。
我一直在努力通过网上阅读来自己解决这个问题。任何帮助,将不胜感激。我的工作表链接是https://docs.google.com/spreadsheets/d/1NZxXjMptx6ldzL2CKk6OwJcq_heIv995ZGVeIE59xNc/edit?usp=sharing
感谢您提供的一切和所有内容!
答案 0 :(得分:1)
我认为这是您希望实现的目标:
function dailyclear() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ui = SpreadsheetApp.getUi();
var sheet = ss.getSheetByName('Today');
var getB2 = sheet.getRange("B2").getValue();
sheet.copyTo(ss).setName(getB2);
var nusheet = ss.getSheetByName(getB2);
Logger.log("Current index of sheet: %s", nusheet.getIndex());
ss.setActiveSheet(nusheet);
ss.moveActiveSheet(2);
var getA8 = sheet.getRange('A8').getValue();
if (getA8) {
var numRows = sheet.getMaxRows();
if (numRows > 8) {
sheet.deleteRows(8, numRows - 8);
} else {
sheet.deleteRow(8);
}
} else {
var newDate = Utilities.formatDate(new Date(), "GMT-5", "MM/dd/yy");
sheet.getRange("B2").setValue(newDate);
}
}