此代码从我的工作表中的不同位置获取值,并将组合数据写入另一个工作表。
问题是,如果行为空白,则代码会将空行复制到接收表中。我想先检查单元格“B8”,如果是空白,请跳过此功能并运行下一个功能。
如果单元格“B8”中有数据(任何内容,但通常都是日期),那么我想运行该函数将代码复制到新工作表中。
这是我的代码:
function submitButtonClick() {
//Begining of entry8 transfer start.
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
Logger.log('sheet.getName(): ' + sheet.getName());
if (sheet.getName() !== "TimeCardEntry") {return;};
var targetSheet = ss.getSheetByName("TimeSheetRecord");
var arrayOfData = [];
var weekBegining = sheet.getRange(4, 11).getValue();
var employName = sheet.getRange(4, 4).getValue();
var entry8 = sheet.getRange(8,2,1,9);
var entry8Data = entry8.getValues()[0];//Get inner array of the rows data
Logger.log('entry8Data: ' + entry8Data);
//Add weekBegining and employName values to the array
entry8Data.splice(0, 0, weekBegining, employName);
//Push row data into another, outer array. setValuies() needs a 2D array.
arrayOfData.push(entry8Data);
Logger.log(arrayOfData);
var lastRow = targetSheet.getLastRow();
Logger.log('lastRow: ' + lastRow);
targetSheet.getRange(lastRow+1, 1, 1, entry8Data.length).setValues(arrayOfData);
sheet.getRange('B8:M8').clearContent();
//End of entry8 transfer.
}
答案 0 :(得分:0)
您可以在这些行之间添加一些代码:
var arrayOfData = [];
var weekBegining = sheet.getRange(4, 11).getValue();
更改为:
var arrayOfData = [];
var B8_Value = sheet.getRange(8, 2).getValue();
if (B8_Value === "") {return;};//If cell value is empty stop code here
var weekBegining = sheet.getRange(4, 11).getValue();