我似乎无法让这个脚本工作。我有一个用于计费目的的模板,我正在尝试克隆该表,然后在每个月底更新新客户、合同等的信息。我不想要“bsf”电子表格中的所有信息,而只想要我的计费模板中使用的列。我对其进行了测试,一切正常,但不包括 for 循环。里面的东西出了问题。
使用 for 循环,我试图循环浏览每一列,抓取它,将我的模板文档中的标题与 BSF 文档进行比较,如果它们匹配,则将整个列粘贴到我的新帐单文档中。如果不是,我希望它移至下一列并执行完全相同的操作。
function newBillingDoc() {
var billingTemplate = SpreadsheetApp.getActiveSpreadsheet();
var destFolder = DriveApp.getFolderById("0B1U5evaRId6xYi1rNGhZbUtBV0U");
var newId = DriveApp.getFileById(billingTemplate.getId()).makeCopy("billing doc template", destFolder).getId();
var billingMaster = SpreadsheetApp.openById(newId).getSheetByName('2016 Master');
billingMaster.clearContents();
var bsf = SpreadsheetApp.openById('1qKaZXpCk7Vw3uvRNft8Cl4vuCC_6PMRR9xyc2tNE7Cc').getSheetByName('Copy of 2016 Master');
var lastRow = bsf.getLastRow();
var lastColumn = bsf.getLastColumn();
var billingHeader = billingTemplate.getSheetByName('2016 Master').getRange('A1:J1').getValue();
billingMaster.getRange('A1:J1').setValue(billingHeader);
for(var j = 1; j < lastColumn; j++); {
var billingBody = billingMaster.getRange(1, j, lastRow, 1);
billingHeader = billingTemplate.getSheetByName('2016 Master').getRange(1, j, 1, 1).getValue();
var masterHeader = bsf.getRange(1, j, 1, 1).getValue();
if (billingHeader == masterHeader) {
var billingBodyChunk = bsf.getRange(1, j, lastRow, 1).getValues();
billingBody.setValues(billingBodyChunk);
}
}
}
当我投入时,billing Header
我得到以下信息:masterHeader
Logger.log(data)
[16-05-31 16:01:15:403 PDT] [[]]
[16-05-31 16:01:15:403 PDT] [[Percentage]]
我认为我需要声明一个数组或其他东西,但我真的不知道。我尝试添加数组,但它似乎不适用于我正在使用的对象。