【发布时间】:2018-09-10 12:47:31
【问题描述】:
这是我当前项目的第三个(希望是最后一个)问题。
IF ELSE 语句在以下代码中似乎无法正常工作:
function onFormSubmit() {
// onFormSubmit
// get submitted data
var ss =
SpreadsheetApp.openById("1UMSTyjYz2DMubBT54Q7a0V5ie5TAPYFZ2riqV5p93gE");
var sheet = ss.getSheetByName("Submissions");
var row = sheet.getLastRow();
var Col = sheet.getLastColumn();
var headings = sheet.getRange(1,1,1,Col).getValues();
var lastRow = sheet.getRange(row, 1, 1, Col);
var UnitNumber = sheet.getRange(row,3,Col).getValue();
var newSheet = sheet.getRange(row,4,Col).getValue();
// check if username has sheet
if(ss.getSheetByName(UnitNumber)){
var DrillSheet = ss.insertSheet(UnitNumber);
// if not make
} else {
var DrillSheet = SpreadsheetApp.create(UnitNumber);
DrillSheet.getSheetByName('Sheet1').getRange(1,1,1,Col).setValues(headings);
}
// Rename sheet to submission date
DrillSheet.renameActiveSheet(newSheet);
// copy submitted data to Drill sheet
DrillSheet.appendRow(lastRow.getValues()[0]);
DrillSheet.appendRow(['=CONCATENATE(B6," ",B5)']);
DrillSheet.appendRow(['=TRANSPOSE(B1:2)']);
//Hide top rows with raw data
var hiderange = DrillSheet.getRange("A1:A3");
DrillSheet.hideRow(hiderange);
//Widen columns
DrillSheet.setColumnWidth(1,390);
DrillSheet.setColumnWidth(2,700);
}
这里的目标是创建一个新的电子表格,标题为“UnitNumber”,工作表标题作为提交日期(如果该电子表格尚不存在)。如果“UnitNumber”电子表格确实存在,我想在该电子表格中创建一个新工作表,标题为提交日期。
目前它每次都在创建一个新的电子表格。
【问题讨论】:
-
你能在不同的帖子里问你不同的问题吗?
-
您的代码逻辑与您声明的逻辑不匹配。 if/else 执行您的代码要求它执行的操作。一个好的第一步是逐行、逐语句地分析您的代码,并向附近的人解释该语句正在做什么——它需要的参数,以及它具有的返回值/副作用——如果有的话。这将使您能够确定您的代码当前正在做什么,并对 Apps 脚本和 JavaScript 语言建立足够的熟悉度,以便您可以尝试将代码逻辑调整为您声明的逻辑。
标签: google-apps-script google-sheets