【问题标题】:Google Sheets Script - paste values based on time trigger谷歌表格脚本 - 基于时间触发器粘贴值
【发布时间】:2016-08-15 12:30:15
【问题描述】:
我正在尝试用一段脚本做一些事情,但无法全部完成。
在我的工作表的第 2 行中,我有一系列基于每个月的第一天的连续日期(英式表示法),例如 01/08/2016、01/09/2016、01/10/2016。然后,我在第 14 行和第 15 行有一个公式,当今天的日期与第 2 行中的日期匹配时,我希望修复它(复制/粘贴值)。
我觉得我需要做一些事情-
- 安排脚本每天运行一次,以检查第 2 行中的任何值是否等于今天的日期。如果是真的那么...
- 复制/粘贴第 14 行和第 15 行以及日期匹配的列中的数字值。
也许需要索引/匹配来验证第 1 部分,但我真的不知道该怎么做。
感谢您的帮助。
【问题讨论】:
标签:
google-apps-script
google-sheets
【解决方案1】:
我想我现在已经成功破解了它。在第 1 行中,我输入了一个辅助公式,该公式检查第 2 行中的日期与今天的日期,如果匹配,则将“TRUEMONTH”放入单元格中。然后我的笨重代码如下(它仍然需要一些整理工作表参考等)-
function ColCheck() {
var name = "TRUEMONTH";
var name1 = "PASTE_ME_AS_VALUE";
var range = SpreadsheetApp.getActiveSheet().getDataRange()
var values = range.getValues();
var range1 = SpreadsheetApp.getActiveSheet().getDataRange()
var values1 = range1.getValues();
for (var row in values) {
for (var col in values[row]) {
if (values[row][col] == name) {
for (var row1 in values1) {
for (var col1 in values1[row1]) {
if (values1[row1][col1] == name1) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var row = parseInt(row1) + 1;
var col = parseInt(col) + 1;
var source = ss.getActiveSheet().getRange([row],[col]);
source.copyTo(ss.getActiveSheet().getRange([row],[col]), {contentsOnly: true});
}
}
}
}
}
}
}