Performance 慢存档谷歌应用程序脚本
我正在做一份财务跟踪表,并且已经完成了它的输入部分,并且工作得很好。问题是,在大多数情况下,它一行一行地运行,速度非常慢。除了大量的代码外,我不知道如何加快速度或将任何东西批处理在一起。此外,所讨论的函数的开头和结尾的大括号没有连接(当光标靠近它们时,它们都是红色的),这我不理解。有人能帮我清理一下代码以加快速度吗? 以下是所讨论的功能:Performance 慢存档谷歌应用程序脚本,performance,google-apps-script,optimization,google-sheets,Performance,Google Apps Script,Optimization,Google Sheets,我正在做一份财务跟踪表,并且已经完成了它的输入部分,并且工作得很好。问题是,在大多数情况下,它一行一行地运行,速度非常慢。除了大量的代码外,我不知道如何加快速度或将任何东西批处理在一起。此外,所讨论的函数的开头和结尾的大括号没有连接(当光标靠近它们时,它们都是红色的),这我不理解。有人能帮我清理一下代码以加快速度吗? 以下是所讨论的功能: function onClickSubmit(e) { var wkbk = SpreadsheetApp.getActiveSpreadsheet();
function onClickSubmit(e) {
var wkbk = SpreadsheetApp.getActiveSpreadsheet();
var ss = wkbk.getSheetByName("Entry");
//Bank Details Move
var bankDeposit = ss.getRange(3,9).getValue();
var bankWithdrawal = ss.getRange(3,10).getValue();
var bankDate = ss.getRange(3,12).getValue();
var targetSheet = wkbk.getSheetByName("BANK DS");
if(bankDate != ""){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var bankAmt = (bankDeposit - bankWithdrawal);
var bankDetail = [[bankDate, bankAmt]];
targetSheet.getRange(targetRow,1,1,2).setValues(bankDetail);
targetSheet.getRange(targetRow-1,3).copyTo(targetSheet.getRange(targetRow,3));
ss.getRange(3,9,1,4).clearContent();
}
//Work Chits Move
var work1Hours = ss.getRange(5,9).getValue();
var work1Job = ss.getRange(5,10).getValue();
var work1Rate = ss.getRange(5,11).getValue();
var work1Date = ss.getRange(5,12).getValue();
var targetSheet = wkbk.getSheetByName("WORK DS");
if(work1Date != ""){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var work1Detail = [[work1Date,work1Job,work1Hours,work1Rate]];
targetSheet.getRange(targetRow,1,1,4).setValues(work1Detail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
ss.getRange(5,9,1,4).clearContent();
}
var work2Hours = ss.getRange(6,9).getValue();
var work2Job = ss.getRange(6,10).getValue();
var work2Rate = ss.getRange(6,11).getValue();
var work2Date = ss.getRange(6,12).getValue();
var targetSheet = wkbk.getSheetByName("WORK DS");
if(work2Date != ""){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var work2Detail = [[work2Date,work2Job,work2Hours,work2Rate]];
targetSheet.getRange(targetRow,1,1,4).setValues(work2Detail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
ss.getRange(6,9,1,4).clearContent();
}
var work3Hours = ss.getRange(7,9).getValue();
var work3Job = ss.getRange(7,10).getValue();
var work3Rate = ss.getRange(7,11).getValue();
var work3Date = ss.getRange(7,12).getValue();
var targetSheet = wkbk.getSheetByName("WORK DS");
if(work3Date != ""){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var work3Detail = [[work3Date,work3Job,work3Hours,work3Rate]];
targetSheet.getRange(targetRow,1,1,4).setValues(work3Detail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
ss.getRange(7,9,1,4).clearContent();
}
//Receipts Move
var i = 9
var reDate = ss.getRange(i,12).getValue()
var targetSheet = wkbk.getSheetByName("RECEIPTS DS");
if (reDate !=""){
while (reDate !="") {
var reAmt = ss.getRange(i,9).getValue();
var rePlace = ss.getRange(i,10).getValue();
var reCat = ss.getRange(i,11).getValue();
var reDate = ss.getRange(i,12).getValue();
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var reDetail = [[reDate,rePlace,reCat,reAmt]];
targetSheet.getRange(targetRow,1,1,4).setValues(reDetail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
ss.getRange(i,9,1,4).clearContent();
i++
}
}
//Safe Move 3, 9, 13 (dates) 3-8, 9-12, 13-18
var safeDate = ss.getRange(3,6).getValue();
var targetSheet = wkbk.getSheetByName("SAFE DS");
for (var i=3;i<9;i++){
var safeIn = ss.getRange(i,2).getValue();
var safeOut = ss.getRange(i,4).getValue();
var safeCnt = (safeIn - safeOut);
var safeType = ss.getRange(i,3).getValue();
if(safeCnt != 0){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var safeDetail = [[safeDate, safeType,safeCnt]];
targetSheet.getRange(targetRow,1,1,3).setValues(safeDetail);
// targetSheet.getRange(targetRow-1,3).copyTo(targetSheet.getRange(targetRow,3));
ss.getRange(i,2).clearContent();
ss.getRange(i,4).clearContent();
}
}
ss.getRange(3,6).clearContent();
//Safe Move 9 (rolls) 3-8, 9-12, 13-18
var safeDate = ss.getRange(9,6).getValue();
var targetSheet = wkbk.getSheetByName("SAFE DS");
for (var i=9;i<13;i++){
var safeIn = ss.getRange(i,2).getValue();
var safeOut = ss.getRange(i,4).getValue();
var safeCnt = (safeIn - safeOut);
var safeType = ss.getRange(i,3).getValue();
if(safeCnt != 0){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var safeDetail = [[safeDate, safeType,safeCnt]];
targetSheet.getRange(targetRow,1,1,3).setValues(safeDetail);
ss.getRange(i,2).clearContent();
ss.getRange(i,4).clearContent();
}
}
ss.getRange(9,6).clearContent();
//Safe Move (loose) 13-18
var safeDate = ss.getRange(13,6).getValue();
var targetSheet = wkbk.getSheetByName("SAFE DS");
for (var i=13;i<19;i++){
var safeIn = ss.getRange(i,2).getValue();
var safeOut = ss.getRange(i,4).getValue();
var safeCnt = (safeIn - safeOut);
var safeType = ss.getRange(i,3).getValue();
if(safeCnt != 0){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var safeDetail = [[safeDate, safeType,safeCnt]];
targetSheet.getRange(targetRow,1,1,3).setValues(safeDetail);
ss.getRange(i,2).clearContent();
ss.getRange(i,4).clearContent();
}
}
ss.getRange(13,6).clearContent();
}
函数onClickSubmit(e){
var wkbk=SpreadsheetApp.getActiveSpreadsheet();
var ss=wkbk.getSheetByName(“条目”);
//银行资料转移
var bankDeposit=ss.getRange(3,9).getValue();
var BankDrawing=ss.getRange(3,10).getValue();
var bankDate=ss.getRange(3,12).getValue();
var targetSheet=wkbk.getSheetByName(“银行DS”);
如果(银行日期!=“”){
//在A列中查找第一个空白单元格,以便在其中输入新数据:
var Avals=targetSheet.getRange(“A1:A”).getValues();
var targetRow=Avals.filter(字符串).length+1;
var values=ss.getRange(“A:A”).getValues();
var bankAmt=(银行存款-银行取款);
var bankDetail=[[bankDate,bankAmt]];
targetSheet.getRange(targetRow,1,1,2).设置值(bankDetail);
targetSheet.getRange(targetRow-1,3).copyTo(targetSheet.getRange(targetRow,3));
ss.getRange(3,9,1,4).clearContent();
}
//搬家
var work1Hours=ss.getRange(5,9).getValue();
var work1Job=ss.getRange(5,10).getValue();
var work1Rate=ss.getRange(5,11).getValue();
var work1Date=ss.getRange(5,12).getValue();
var targetSheet=wkbk.getSheetByName(“工作DS”);
如果(工作日期!=“”){
//在A列中查找第一个空白单元格,以便在其中输入新数据:
var Avals=targetSheet.getRange(“A1:A”).getValues();
var targetRow=Avals.filter(字符串).length+1;
var values=ss.getRange(“A:A”).getValues();
var work1Detail=[[work1Date,work1Job,work1Hours,work1Rate]];
targetSheet.getRange(targetRow,1,1,4).设置值(work1Detail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
ss.getRange(5,9,1,4).clearContent();
}
var work2Hours=ss.getRange(6,9).getValue();
var work2Job=ss.getRange(6,10).getValue();
var work2Rate=ss.getRange(6,11).getValue();
var work2Date=ss.getRange(6,12).getValue();
var targetSheet=wkbk.getSheetByName(“工作DS”);
如果(工作日期!=“”){
//在A列中查找第一个空白单元格,以便在其中输入新数据:
var Avals=targetSheet.getRange(“A1:A”).getValues();
var targetRow=Avals.filter(字符串).length+1;
var values=ss.getRange(“A:A”).getValues();
var work2Detail=[[work2Date,work2Job,work2Hours,work2Rate]];
targetSheet.getRange(targetRow,1,1,4).设置值(work2Detail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
getRange(6,9,1,4).clearContent();
}
var work3Hours=ss.getRange(7,9).getValue();
var work3Job=ss.getRange(7,10).getValue();
var work3Rate=ss.getRange(7,11).getValue();
var work3Date=ss.getRange(7,12).getValue();
var targetSheet=wkbk.getSheetByName(“工作DS”);
如果(工作日期!=“”){
//在A列中查找第一个空白单元格,以便在其中输入新数据:
var Avals=targetSheet.getRange(“A1:A”).getValues();
var targetRow=Avals.filter(字符串).length+1;
var values=ss.getRange(“A:A”).getValues();
var work3Detail=[[work3Date,work3Job,work3Hours,work3Rate]];
targetSheet.getRange(targetRow,1,1,4).设置值(work3Detail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
getRange(7,9,1,4).clearContent();
}
//收据移动
变量i=9
var reDate=ss.getRange(i,12).getValue()
var targetSheet=wkbk.getSheetByName(“收据DS”);
如果(reDate!=“”){
while(reDate!=“”){
var reAmt=ss.getRange(i,9.getValue();
var rePlace=ss.getRange(i,10.getValue();
var reCat=ss.getRange(i,11.getValue();
var reDate=ss.getRange(i,12.getValue();
//在A列中查找第一个空白单元格,以便在其中输入新数据:
var Avals=targetSheet.getRange(“A1:A”).getValues();
var targetRow=Avals.filter(字符串).length+1;
var values=ss.getRange(“A:A”).getValues();
var reDetail=[[reDate,rePlace,reCat,reAmt]];
targetSheet.getRange(targetRow,1,1,4).设置值(reDetail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
getRange(i,9,1,4).clearContent();
我++
}
}
//安全移动3,9,13(日期)3-8,9-12,13-18
var safeDate=ss.getRange(3,6).getValue();
var targetSheet=wkbk.getSheetByName(“安全DS”);
对于(var i=3;i,以下是一些建议:
我把我的建议放在代码下面的注释中
一般情况下,避免使用getValue(),而是使用getValues(),因为它会返回一个2D数据数组。请阅读文档并在调试器中查看返回的值,以便真正了解数据的外观:[[row0]、[row1]、[row2]…]
并避免使用A1:A形式的A1符号。改用Sheet.getRange(1,1,Sheet.getLastRow()……)
function onClickSubmit(e) {
var wkbk = SpreadsheetApp.getActiveSpreadsheet();
var ss = wkbk.getSheetByName("Entry");
//Bank Details Move
var bankDeposit = ss.getRange(3,9).getValue();
var bankWithdrawal = ss.getRange(3,10).getValue();
var bankDate = ss.getRange(3,12).getValue();
var targetSheet = wkbk.getSheetByName("BANK DS");
//var t=ss.getRange(3,9,1,4).getValues()[0];
//var bankDeposit = t[0];
//var bankWithdrawal = t[1];
//var bankDate = t[3];
//var targetSheet = wkbk.getSheetByName("BANK DS");
if(bankDate != ""){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();//This often returns nulls between data last row and max rows
var targetRow = Avals.filter(String).length + 1;
//var targetRow = targetSheet.getRange(1,1,targetSheet.getLastRow()).getValues().length;
var values = ss.getRange("A:A").getValues();//Same problem as described above
var bankAmt = (bankDeposit - bankWithdrawal);
var bankDetail = [[bankDate, bankAmt]];
targetSheet.getRange(targetRow,1,1,2).setValues(bankDetail);
targetSheet.getRange(targetRow-1,3).copyTo(targetSheet.getRange(targetRow,3));
ss.getRange(3,9,1,4).clearContent();
}
//Work Chits Move
var work1Hours = ss.getRange(5,9).getValue();
var work1Job = ss.getRange(5,10).getValue();
var work1Rate = ss.getRange(5,11).getValue();
var work1Date = ss.getRange(5,12).getValue();
//try as above to get data all at once
//var vals=ss.getRange(5,9,1,4).getValues();
//then use vals[0]...
var targetSheet = wkbk.getSheetByName("WORK DS");
if(work1Date != ""){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var work1Detail = [[work1Date,work1Job,work1Hours,work1Rate]];
targetSheet.getRange(targetRow,1,1,4).setValues(work1Detail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
ss.getRange(5,9,1,4).clearContent();
}
var work2Hours = ss.getRange(6,9).getValue();
var work2Job = ss.getRange(6,10).getValue();
var work2Rate = ss.getRange(6,11).getValue();
var work2Date = ss.getRange(6,12).getValue();
var targetSheet = wkbk.getSheetByName("WORK DS");
if(work2Date != ""){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var work2Detail = [[work2Date,work2Job,work2Hours,work2Rate]];
targetSheet.getRange(targetRow,1,1,4).setValues(work2Detail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
ss.getRange(6,9,1,4).clearContent();
}
var work3Hours = ss.getRange(7,9).getValue();
var work3Job = ss.getRange(7,10).getValue();
var work3Rate = ss.getRange(7,11).getValue();
var work3Date = ss.getRange(7,12).getValue();
var targetSheet = wkbk.getSheetByName("WORK DS");
if(work3Date != ""){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var work3Detail = [[work3Date,work3Job,work3Hours,work3Rate]];
targetSheet.getRange(targetRow,1,1,4).setValues(work3Detail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
ss.getRange(7,9,1,4).clearContent();
}
//Receipts Move
var i = 9
var reDate = ss.getRange(i,12).getValue()
var targetSheet = wkbk.getSheetByName("RECEIPTS DS");
if (reDate !=""){
while (reDate !="") {
var reAmt = ss.getRange(i,9).getValue();
var rePlace = ss.getRange(i,10).getValue();
var reCat = ss.getRange(i,11).getValue();
var reDate = ss.getRange(i,12).getValue();
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var reDetail = [[reDate,rePlace,reCat,reAmt]];
targetSheet.getRange(targetRow,1,1,4).setValues(reDetail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
ss.getRange(i,9,1,4).clearContent();
i++
}
}
//Safe Move 3, 9, 13 (dates) 3-8, 9-12, 13-18
var safeDate = ss.getRange(3,6).getValue();
var targetSheet = wkbk.getSheetByName("SAFE DS");
for (var i=3;i<9;i++){
var safeIn = ss.getRange(i,2).getValue();
var safeOut = ss.getRange(i,4).getValue();
var safeCnt = (safeIn - safeOut);
var safeType = ss.getRange(i,3).getValue();
if(safeCnt != 0){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var safeDetail = [[safeDate, safeType,safeCnt]];
targetSheet.getRange(targetRow,1,1,3).setValues(safeDetail);
// targetSheet.getRange(targetRow-1,3).copyTo(targetSheet.getRange(targetRow,3));
ss.getRange(i,2).clearContent();
ss.getRange(i,4).clearContent();
}
}
ss.getRange(3,6).clearContent();
//Safe Move 9 (rolls) 3-8, 9-12, 13-18
var safeDate = ss.getRange(9,6).getValue();
var targetSheet = wkbk.getSheetByName("SAFE DS");
for (var i=9;i<13;i++){
var safeIn = ss.getRange(i,2).getValue();
var safeOut = ss.getRange(i,4).getValue();
var safeCnt = (safeIn - safeOut);
var safeType = ss.getRange(i,3).getValue();
if(safeCnt != 0){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var safeDetail = [[safeDate, safeType,safeCnt]];
targetSheet.getRange(targetRow,1,1,3).setValues(safeDetail);
ss.getRange(i,2).clearContent();
ss.getRange(i,4).clearContent();
}
}
ss.getRange(9,6).clearContent();
//Safe Move (loose) 13-18
var safeDate = ss.getRange(13,6).getValue();
var targetSheet = wkbk.getSheetByName("SAFE DS");
for (var i=13;i<19;i++){
var safeIn = ss.getRange(i,2).getValue();
var safeOut = ss.getRange(i,4).getValue();
var safeCnt = (safeIn - safeOut);
var safeType = ss.getRange(i,3).getValue();
if(safeCnt != 0){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var safeDetail = [[safeDate, safeType,safeCnt]];
targetSheet.getRange(targetRow,1,1,3).setValues(safeDetail);
ss.getRange(i,2).clearContent();
ss.getRange(i,4).clearContent();
}
}
ss.getRange(13,6).clearContent();
}
函数onClickSubmit(e){
var wkbk=SpreadsheetApp.getActiveSpreadsheet();
var ss=wkbk.getSheetByName(“条目”);
//银行资料转移
var bankDeposit=ss.getRange(3,9).getValue();
var BankDrawing=ss.getRange(3,10).getValue();
var bankDate=ss.getRange(3,12).getValue();
var targetSheet=wkbk.getSheetByName(“银行DS”);
//var t=ss.getRange(3,9,1,4).getValues()[0];
//var bankDeposit=t[0];
//var银行提款=t[1];
//var bankDate=t[3];
//var targetSheet=wkbk.getSheetByName(“银行DS”);
如果(银行日期!=“”){
//在A列中查找第一个空白单元格,以便在其中输入新数据:
var Avals=targetSheet.getRange(“A1:A”).getValues();//这通常是
function onClickSubmit(e) {
var wkbk = SpreadsheetApp.getActiveSpreadsheet();
var ss = wkbk.getSheetByName("Entry");
//Bank Details Move
var bankDeposit = ss.getRange(3,9).getValue();
var bankWithdrawal = ss.getRange(3,10).getValue();
var bankDate = ss.getRange(3,12).getValue();
var targetSheet = wkbk.getSheetByName("BANK DS");
//var t=ss.getRange(3,9,1,4).getValues()[0];
//var bankDeposit = t[0];
//var bankWithdrawal = t[1];
//var bankDate = t[3];
//var targetSheet = wkbk.getSheetByName("BANK DS");
if(bankDate != ""){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();//This often returns nulls between data last row and max rows
var targetRow = Avals.filter(String).length + 1;
//var targetRow = targetSheet.getRange(1,1,targetSheet.getLastRow()).getValues().length;
var values = ss.getRange("A:A").getValues();//Same problem as described above
var bankAmt = (bankDeposit - bankWithdrawal);
var bankDetail = [[bankDate, bankAmt]];
targetSheet.getRange(targetRow,1,1,2).setValues(bankDetail);
targetSheet.getRange(targetRow-1,3).copyTo(targetSheet.getRange(targetRow,3));
ss.getRange(3,9,1,4).clearContent();
}
//Work Chits Move
var work1Hours = ss.getRange(5,9).getValue();
var work1Job = ss.getRange(5,10).getValue();
var work1Rate = ss.getRange(5,11).getValue();
var work1Date = ss.getRange(5,12).getValue();
//try as above to get data all at once
//var vals=ss.getRange(5,9,1,4).getValues();
//then use vals[0]...
var targetSheet = wkbk.getSheetByName("WORK DS");
if(work1Date != ""){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var work1Detail = [[work1Date,work1Job,work1Hours,work1Rate]];
targetSheet.getRange(targetRow,1,1,4).setValues(work1Detail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
ss.getRange(5,9,1,4).clearContent();
}
var work2Hours = ss.getRange(6,9).getValue();
var work2Job = ss.getRange(6,10).getValue();
var work2Rate = ss.getRange(6,11).getValue();
var work2Date = ss.getRange(6,12).getValue();
var targetSheet = wkbk.getSheetByName("WORK DS");
if(work2Date != ""){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var work2Detail = [[work2Date,work2Job,work2Hours,work2Rate]];
targetSheet.getRange(targetRow,1,1,4).setValues(work2Detail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
ss.getRange(6,9,1,4).clearContent();
}
var work3Hours = ss.getRange(7,9).getValue();
var work3Job = ss.getRange(7,10).getValue();
var work3Rate = ss.getRange(7,11).getValue();
var work3Date = ss.getRange(7,12).getValue();
var targetSheet = wkbk.getSheetByName("WORK DS");
if(work3Date != ""){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var work3Detail = [[work3Date,work3Job,work3Hours,work3Rate]];
targetSheet.getRange(targetRow,1,1,4).setValues(work3Detail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
ss.getRange(7,9,1,4).clearContent();
}
//Receipts Move
var i = 9
var reDate = ss.getRange(i,12).getValue()
var targetSheet = wkbk.getSheetByName("RECEIPTS DS");
if (reDate !=""){
while (reDate !="") {
var reAmt = ss.getRange(i,9).getValue();
var rePlace = ss.getRange(i,10).getValue();
var reCat = ss.getRange(i,11).getValue();
var reDate = ss.getRange(i,12).getValue();
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var reDetail = [[reDate,rePlace,reCat,reAmt]];
targetSheet.getRange(targetRow,1,1,4).setValues(reDetail);
targetSheet.getRange(targetRow-1,5,1,3).copyTo(targetSheet.getRange(targetRow,5,1,3));
ss.getRange(i,9,1,4).clearContent();
i++
}
}
//Safe Move 3, 9, 13 (dates) 3-8, 9-12, 13-18
var safeDate = ss.getRange(3,6).getValue();
var targetSheet = wkbk.getSheetByName("SAFE DS");
for (var i=3;i<9;i++){
var safeIn = ss.getRange(i,2).getValue();
var safeOut = ss.getRange(i,4).getValue();
var safeCnt = (safeIn - safeOut);
var safeType = ss.getRange(i,3).getValue();
if(safeCnt != 0){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var safeDetail = [[safeDate, safeType,safeCnt]];
targetSheet.getRange(targetRow,1,1,3).setValues(safeDetail);
// targetSheet.getRange(targetRow-1,3).copyTo(targetSheet.getRange(targetRow,3));
ss.getRange(i,2).clearContent();
ss.getRange(i,4).clearContent();
}
}
ss.getRange(3,6).clearContent();
//Safe Move 9 (rolls) 3-8, 9-12, 13-18
var safeDate = ss.getRange(9,6).getValue();
var targetSheet = wkbk.getSheetByName("SAFE DS");
for (var i=9;i<13;i++){
var safeIn = ss.getRange(i,2).getValue();
var safeOut = ss.getRange(i,4).getValue();
var safeCnt = (safeIn - safeOut);
var safeType = ss.getRange(i,3).getValue();
if(safeCnt != 0){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var safeDetail = [[safeDate, safeType,safeCnt]];
targetSheet.getRange(targetRow,1,1,3).setValues(safeDetail);
ss.getRange(i,2).clearContent();
ss.getRange(i,4).clearContent();
}
}
ss.getRange(9,6).clearContent();
//Safe Move (loose) 13-18
var safeDate = ss.getRange(13,6).getValue();
var targetSheet = wkbk.getSheetByName("SAFE DS");
for (var i=13;i<19;i++){
var safeIn = ss.getRange(i,2).getValue();
var safeOut = ss.getRange(i,4).getValue();
var safeCnt = (safeIn - safeOut);
var safeType = ss.getRange(i,3).getValue();
if(safeCnt != 0){
//Finds first blank cell in column A, to enter new data in:
var Avals = targetSheet.getRange("A1:A").getValues();
var targetRow = Avals.filter(String).length + 1;
var values = ss.getRange("A:A").getValues();
var safeDetail = [[safeDate, safeType,safeCnt]];
targetSheet.getRange(targetRow,1,1,3).setValues(safeDetail);
ss.getRange(i,2).clearContent();
ss.getRange(i,4).clearContent();
}
}
ss.getRange(13,6).clearContent();
}