google-apps-script - 复制和插入行(带公式)A列有*的所有地方
问题描述
TL;DR - 复制第 2 行并在 A 列包含“*”字符的任何地方(上面的一行)插入。
大家好。我正在尝试使用 Google Apps 脚本来构建一个自动化功能,该功能将复制一行(使用公式)并将这个复制的行插入到满足定义条件的任何地方(A 列有 *)。我已经能够编写(1)一个脚本,它将在有 * 的任何地方插入一个空白行,(2)一个脚本,它将复制公式并插入到最后一行 - 但我无法合并两者成功地。
到目前为止,我有以下内容,感觉很接近 - 但无法进一步调整以获得所需的结果:
function insertRecord() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
var lRow = sh.getLastRow();
var lCol = sh.getLastColumn();
var range = sh.getRange(2,1,1,lCol);
var formulas = range.getFormulas();
var values = sh.getRange('A:A').getValues();
for ( var i = values.length-1 ; i >= 0 ; i-- )
if (values[i][0] == "*")
sh.insertRowBefore(i+1)
var newRange = sh.getRange(lRow, 1, 1, lCol)
range.copyTo(newRange);
}
请在此处查看我的Google 表格模板。如果您有任何问题,请告诉我!并感谢您的帮助。
解决方案
像这样的东西?
function insertRecord() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
var lRow = sh.getLastRow();
var lCol = sh.getLastColumn();
var range = sh.getRange(2,1,1,lCol);
var values = sh.getRange('A:A').getValues();
for ( var i = values.length-1 ; i >= 0 ; i-- ) {
if (values[i][0] == "*") {
sh.insertRowBefore(i+1)
var newRange = sh.getRange(i+1, 1, 1, lCol)
range.copyTo(newRange);
}
}
}
推荐阅读
- ionic-framework - Ionic 4 中的深层链接如何工作?
- swift - 在 macOS 上的 WKWebView 中加载图像
- javascript - 当系列没有相同的时间值时,如何在工具提示中显示所有系列
- java - 用于无效输出的 AWS Lambda RequestHandler
- seo - 没有用户选择的规范的重复
- java - JavaFX:如何向 Canvas 的子类添加方法,允许将按钮添加到 cavas 本身?
- asp.net-web-api - 如何使用 Angular 7 和 webAPI 重置密码
- apache-flink - 如何根据内容写入不同的文件以在 Flink 中进行批处理?
- docker - Kibana UI 在 ElasticSearch 重启后总是显示状态页面
- php - Magento2 目录:图像:调整 mysql 大小