Craig Bennett
Craig Bennett

Reputation: 13

Struggling with an If / Else Script

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

Answers (1)

James D
James D

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

Related Questions