javascript - 谷歌表格/应用程序脚本将公式复制到新行
问题描述
对此仍然相当陌生。我已经能够使用复选框在单独的选项卡上触发新行的创建。在这个新选项卡上,有一列包含公式。创建新行时(在第一行之上),我想要新行中的公式。这是我到目前为止所拥有的:
if(sheet.getSheetName() == CLIENTS) {
var checkCell = ss.getActiveCell();
var checked = checkCell.getValue();
var clientNameCell = checkCell.offset(0,-8).getValue();
var clientType = checkCell.offset(0,-7).getValue();
var sessionChargeCell = checkCell.offset(0, -6).getValue();
var groupChargeCell = checkCell.offset(0,-5).getValue();
var softwareFee = checkCell.offset(0,-4).getValue();
var billFee = checkCell.offset (0,-3).getValue();
var targetSheet = ss.getSheetByName("Client Billing Projections");
var lCol = targetSheet.getLastColumn();
if (checkCell.getColumn() == NEWCLIENTCHECK && checked == true) {
var target = targetSheet.getRange(2, 1, 1, lCol);
var formulas = target.getFormulas();
targetSheet.insertRowBefore(2);
var newRow = targetSheet.getRange(2,1,2,lCol);
newRow.setFormulas(formulas);
}
}
我想我被困在线路之后targetSheet.insertRowBefore(2);
。我认为这与我对 getFormulas 和 setFormulas 的使用有关,但我真的无法理解它。这里没有语法错误。如您所见,我从第一张表(客户)中收集了值;我打算将它复制到另一个选项卡上,但我也必须复制公式。任何帮助,将不胜感激。
这是工作表的一个示例,那里已经有很多工作代码。您将在这里看到的大部分内容可能在第 222 - 238 行之间。到目前为止,其他所有内容都有效。
解决方案
- 当脚本运行时,新行将插入到工作表中的第 2 行
Client Billing Projections
。 - 您想将公式放入插入行的“N”列。
如果我的理解是正确的,那么这个修改呢?
修改点:
- 在您的脚本中,公式由
var formulas = target.getFormulas()
from检索var target = targetSheet.getRange(2, 1, 1, lCol);
。这是包含一行的二维数组。并将检索到的公式newRow.setFormulas(formulas)
与 with 一起使用var newRow = targetSheet.getRange(2,1,2,lCol)
。在这种情况下,formulas
具有包括 2 行的二维数组。- 我认为您的问题的原因可能是这个。
修改后的脚本:
当您的脚本被修改时,请进行如下修改。
从:var newRow = targetSheet.getRange(2,1,2,lCol);
至:
var newRow = targetSheet.getRange(2,1,1,lCol);
参考:
推荐阅读
- alexa - 安装 ASK-CLI 后如何修复“bash: ask: command not found”错误?
- wordpress - Wordpress 多站点子域添加
- excel - 删除和读取 SeriesCollection 后分配标记的 VBA 错误
- python - 在python中将日期时间从字符串转换为日期时间对象时出错
- vue.js - 如何将外部 Vue 模板包含到 HTML 文件中
- postgresql - 在不更改校验和的情况下使用 flyway 重新运行可重复迁移
- javascript - ER_BAD_FIELD_ERROR:“字段列表”中的未知列
- vba - 如何使用 VBA 在 Word 中获取可编辑范围?
- sass - 使用 SASS 自定义按钮颜色
- java - Hotswap Spring Application with war部署在Tomcat中