google-apps-script - 如何将谷歌表格中的一行数据复制到同一张表格中的另一个选项卡?
问题描述
扩展我的问题的表面细节;我有一个谷歌表格标签,每个星期一都会自动更新数据。我需要做的是将该行从 Google 表格中的选项卡复制到同一个拱形表格中的另一个选项卡。这个复制的行需要从前一行向下放置(第 1 周是第 1 行,第 2 周是第 2 行等)。
到目前为止,我已经为这个脚本设置了一个触发器,使其在每个星期一运行(所以我已经管理了简单的部分......)但我仍然无法弄清楚如何完成主要工作!我看过一些类似的代码(其中一个我已经粘贴在下面),当勾选一个框或在单元格中注意到某个值时,数据会移动到新工作表中,但我无法修改其中任何一个以适用于我的情况。
我对使用 Google Script 完全陌生,并且没有任何语言的背景,所以这方面的帮助会很棒!或者,如果有人知道无需脚本就可以执行此功能的方法,那就更好了!(我已经研究过使用 =today() 并使用我要查找的日期作为触发器,但当然会出现错误,因为单元格的文本是 '=today()' 而不是实际日期...)
function onEdit(event) {
// assumes source data in sheet named main
// target sheet of move to named Completed
// getColumn with check-boxes is currently set to colu 4 or D
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "main" && r.getColumn() == 4 && r.getValue() == true) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Completed");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
} else if(s.getName() == "Completed" && r.getColumn() == 4 && r.getValue() == false) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("main");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
解决方案
推荐阅读
- swift - 如何按搜索词过滤短语数组
- angular - 我已经添加了最喜欢的图标,但颜色没有改变,当我刷新时它没有显示为最喜欢的
- java - Get doughnut chart series give zero result when it is available
- android - 我想通过 Android 应用更改用户浏览器中显示的网络广告
- c# - 如何从 REST API 向 Windows 应用程序发送请求
- javascript - 如何在文件树中嵌套 marko 组件
- javascript - 我可以使用 Javascript 从 svg 文件中的路径中获取值吗?或者我可以将它转换为 xml 并将其从那里取出吗?
- java - 找不到类型 int 的属性时间戳!遍历路径:ScoreCard.score
- python - 用于 Flask 网站的带有 Google Cloud MemoryStore 的 Celery
- flutter - 颤振后退按钮隐藏在导航上