Reputation: 1
Google Apps Script is throwing me an error on a script that had been working fine for a couple of weeks.
It is throwing the error on line 6 of the code:
Exception: The coordinates of the range are outside the dimensions of the sheet. (line 6, file "TL")
which is a line of code to the the last row in a range.
Any input on why this is happening and how to remedy it?
function submitTLData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Truckload Invoice FORM"); //Data entry Sheet
var datasheet = ss.getSheetByName("Truckload Invoice DATA"); //Data Sheet
datasheet.getRange(datasheet.getRange("N5").getDataRegion().getLastRow()+1,18,1,1).insertCheckboxes();
//Input Values
var values = [[formSS.getRange("L6").getValue(), //Timestamp
formSS.getRange("L7").getValue(), // Type
formSS.getRange("G5").getValue()]]; //Location
datasheet.getRange(datasheet.getRange("N5").getDataRegion().getLastRow(), 14, 1, 3).setValues(values);
//Input Values
var values = [[formSS.getRange("L5").getValue(), //Checkbox Value
formSS.getRange("G6").getValue(), //TL Description
formSS.getRange("G7").getValue(), //TL Qty
formSS.getRange("G8").getValue(), // TL Value
formSS.getRange("L10").getValue(), // TL Fee Amt
formSS.getRange("L12").getValue(), //OTHER Description
formSS.getRange("L13").getValue(), //OTHER Qty
formSS.getRange("L14").getValue(), //OTHER Value
formSS.getRange("L16").getValue(), //OTHER Fee Amt
formSS.getRange("L17").getValue(), // Freight
formSS.getRange("L18").getValue(), //Shipping
formSS.getRange("L19").getValue(), // Deposit
formSS.getRange("L23").getValue(), //Cr to Loan Amt
formSS.getRange("L26").getValue()]]; //OTHER Cr Amt
datasheet.getRange(datasheet.getRange("N5").getDataRegion().getLastRow(), 18, 1, 14).setValues(values);
//Input Values
var values = [[formSS.getRange("L25").getValue(), //OTHER Cr Description
formSS.getRange("L20").getValue()]]; //TL Notes
datasheet.getRange(datasheet.getRange("N5").getDataRegion().getLastRow(), 33, 1, 2).setValues(values);
var rangesToClear = ['G5:G27',"M7","M13"];
for (var i=0; i<rangesToClear.length; i++) {
formSS.getRange(rangesToClear[i]).clearContent();
}
var noValues = ['G11', "G21:G23","G25"];
for (var i=0; i<noValues.length; i++) {
formSS.getRange(noValues[i]).setValue("No"); //Reset Form Cells to No
}
var yesValues = ['G9',"G15"];
for (var i=0; i<yesValues.length; i++) {
formSS.getRange(yesValues[i]).setValue("Yes"); //Reset Form Cells to No
}
datasheet.getRange('N5').activate();
datasheet.getFilter().sort(14, false);
var getInvNum = datasheet.getRange("Q6").getValue();
datasheet.getRange("G6").setValue(getInvNum);
Browser.msgBox("New Truckload Invoice \\nHas Been Successfully Added");
}
Upvotes: 0
Views: 167
Reputation: 64062
If you data goes all the way down to the end of rows then try something like this:
var mr=datasheet.getMaxRows();
var nr=datasheet.getLastRow()+1;
if(n>mr) {
datasheet.insertRowsAfter(mr,1)
}
datasheet.getRange(datasheet.getRange("N5").getDataRegion().getLastRow()+1,18,1,1).insertCheckboxes();
This should help you to avoid these errors.
Upvotes: 1