【发布时间】:2019-05-18 16:10:27
【问题描述】:
我在 Stack 上阅读了很多年的答案,终于决定加入!所以这是我的第一个问题:
我在这里找到了一个用于 google 表格的 google 应用脚本,该脚本根据单元格值将一行移动到另一个表格。这很棒。我已经对其进行了测试,它对我进行了一些更改 - 首先使用复选框,然后使用复选框复制除第一列之外的所有列。
但是,为了对我真正有用,我希望能够在将行添加到新工作表之前编辑几个值。
所以应该是这样的:
- 如果 Checkbox = true,则复制行,除复选框外的所有列
- 将“位置”的值设置为“伦敦”(例如第 8 列)
- 将“日期”的值设置为今天(例如第 12 列)
- 将已编辑的行添加到底部的新工作表中
谁能帮我实现这个目标?我猜它一定很简单,但我是应用程序脚本的新手,所以不知道该怎么做。
这是我从 2011 年的帖子中找到的移动行的基本脚本:
function onEdit(event) {
// assumes source data in sheet named Needed
// target sheet of move to named Acquired
// test column with checkbox is col 1 or A
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Needed" && r.getColumn() == 1 && r.getValue() == true) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Acquired");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 2, 1, numColumns).copyTo(target);
}
}
希望有人可以提供帮助。提前致谢!
【问题讨论】:
-
如果我理解正确,您希望在将值添加到 Acquired 后修改 Needed 中的值。您想如何确定位置值,或者该值是否始终为“伦敦”?开始回答您的问题的好地方是官方文档:developers.google.com/apps-script/reference/spreadsheet
-
嗨,c0de。是的,或多或少。我想象着在添加到 Acquired 表之前在脚本中更改的值,但我想如果有必要的话,它们也可能在之后发生?对于位置,我认为它将来自第二列中选择的值。日期永远是今天。感谢您的链接。官方文档很全面,但我发现有点难以知道从哪里开始。谢谢。
标签: google-apps-script google-sheets