【发布时间】:2019-12-16 19:35:17
【问题描述】:
根据以下链接,我的电子表格中有 2 张工作表:
第一个称为“事件/事件”,记录所有事件数据,包括投诉、赞美、事故和未遂事件。如果发生需要保险索赔的事件,用户将勾选 Y 列中的框,这将要求另一个用户提出索赔。因此,我创建了第二张题为“保险索赔”的表格。这就像保险索赔的甘特图时间表进度。
一旦初始用户勾选“事件/事件”的 Y 列中的框,我希望将相应行的多个单元格中的值复制并粘贴到“保险索赔表”中。
我仍在学习编写代码,所以我倾向于从其他 Stack Overflow 答案中挑选代码,但我正在努力解决这个问题。这是我目前的尝试,但我觉得我缺少该功能的关键部分。
//Data from Events/Incidents Sheet to Insurance Claims Sheet
function dataInsuranceClaimsSheet() {
// setup spreadsheet and sheets
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sourcesheetname = "Events/Incidents";
var source = spreadsheet.getSheetByName(sourcesheetname);
var targetsheetname = "Insurance Claims";
var target = spreadsheet.getSheetByName(targetsheetname);
var trigger = source.getRange(3, 1, 1, 25) //column Y of Events/Incidents sheet
// get Form Response
//Logger.log(JSON.stringify());
var row = source.range.getRow();
var range = source.getRange(row, 1, 1, 26);
//Logger.log("DEBUG: The range is "+range.getA1Notation());
var values = range.getValues();
var sourceDate = values[0][1]
var sourceId = values[0][2];
var sourceBranch = values[0][3];
var sourceEmployee = values[0][5]
var sourceFleet = values[0][7];
var sourceRoute = values[0][8];
var sourceDescription = values[0][17]
var targetDate = values[0][1]
var targetId = values[0][2];
var targetBranch = values[0][3];
var targetEmployee = values[0][4]
var targetFleet = values[0][5];
var targetRoute = values[0][6];
var targetDescription = values[0][7]
//update the Insurance Claims sheet
var targetupdate = [];
var targetfinal=[];
// push the values to a blank array
targetupdate.push(sourceDate); // Date
targetupdate.push(sourceId); // ID
targetupdate.push(sourceBranch);// Branch
targetupdate.push(sourceEmployee); // Employee
targetupdate.push(sourceFleet); // Fleet
targetupdate.push(SourceRoute);// Route
targetupdate.push(sourceDescription);// Description
// if column Y of the Events/Incidents sheet = TRUE then copy the data from the Events/Incidents sheet and paste into the defined cells of the Insurance Claims sheet
if (trigger == TRUE);
targetfinal.push(targetupdate);
// get Insurance Claims data
var targetLR = target.getLastRow();
var targetupdaterange = target.getRange(targetLR+1,1,1,8);
Logger.log("DEBUG: The target range = "+targetupdaterange.getA1Notation());
// update the form values to the Insurance Claims sheet
targetupdaterange.setValues(targetfinal);
}
我非常感谢您对此提供一些帮助。
【问题讨论】:
-
工作表没有范围方法:
var row = source.range.getRow();你的评论说// get Form Response。您指的是哪种表格?
标签: google-apps-script google-sheets