Reputation: 13
Struggling beginner here, trying to get my script done and I'm just lost at this point. Let me start by posting my script.
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);
}
What I want my script to do is before the //Clear line have an If/else statement that goes like this..."IF there is any text in A8 THEN run sheet.deleterows(8, lastrow-7), ELSE skip to setting the date." I hope that makes sense. Basically I want to to delete all rows except the top 7 based off if any data has been entered in A8, otherwise don't try to delete anything because it will just error on me and lock up.
I have been trying for days to figure this out on my own just by reading on the net and I am throwing in the towel. Any help would be appreciated. The link to my sheet is https://docs.google.com/spreadsheets/d/1NZxXjMptx6ldzL2CKk6OwJcq_heIv995ZGVeIE59xNc/edit?usp=sharing
Thanks for anything and everything offered!
Upvotes: 0
Views: 200
Reputation: 3142
I think this is what you're looking to achieve:
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);
}
}
Upvotes: 1