gpt4 book ai didi

javascript - getRange/setValues 并不总是有效

转载 作者:行者123 更新时间:2023-12-03 08:29:55 27 4
gpt4 key购买 nike

我帮助维护一个 Google 电子表格,其中通过 HTML 表单添加新数据。

添加新数据时,新数据的插入点取决于表单字段之一(申请接收日期)。

该脚本查找工作表中应插入数据的位置并执行 3 件事:

  1. 在正确位置插入空白行
  2. 复制上面的行(以便复制公式和条件格式)
  3. 用表单中输入的值替换副本中单元格中的数据

问题是单元格 A 到 I 是基于值的(从表单填充),单元格 M 到 O 也是如此,但单元格 J、K、L 是基于 A 到 I 中的某些单元格的计算。

这意味着我必须对 getRange/setValues 进行 2 次调用,有时还要进行第二次调用(对设置单元格 M、N、O 的调用不起作用。结果是使用单元格 A 中的正确数据创建了一个新行I(以及 J、K、L),但单元格 M、N、O 保持为上行单元格中的内容。

这是相关代码。

// Assign object data for cells A to I
var newvalues = [
[ username, applyDate, maritalStatus, sponsorApprovalDate, processingOffice, inProcessDate, extraDocsRequestedDate, nonVisaExempt, decisionMadeDate ]
];

// Set cells A to I with data from form
sheet.getRange('A' + startingRowIndex + ':I' + startingRowIndex).setValues(newvalues);

// Now assign object data for cells M to O
newvalues = [
[ coprReceivedDate, location, notes ]
];

// Set cells M to O with data from form
sheet.getRange('M' + startingRowIndex + ':O' + startingRowIndex).setValues(newvalues);

如上所述,第二个sheet.getRange('...').SetValues()调用无法设置值。

有什么想法吗?

最佳答案

您可以在行的开头获得一个“ anchor ”,然后使用Range.offset(),而不是完全重新计算输出范围的位置。方法来定义相对于 anchor 的附加范围。

// Assign object data for cells A to I
var newvalues = [
[ username, applyDate, maritalStatus, sponsorApprovalDate, processingOffice, inProcessDate, extraDocsRequestedDate, nonVisaExempt, decisionMadeDate ]
];

// Get range "anchor" for data from form
var newRow = sheet.getRange('A' + startingRowIndex );

// Set cells A to I with data from form
newRow.offset(0,0,newvalues.length,newvalues[0].length).setValues(newvalues);

// Now assign object data for cells M to O
newvalues = [
[ coprReceivedDate, location, notes ]
];

// Set cells M to O with data from form
newRow.offset(0,13,newvalues.length,newvalues[0].length).setValues(newvalues);

关于javascript - getRange/setValues 并不总是有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33382785/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com