我希望每周都有2个单元更新它们的值。每次这些单元格更新其值时,我希望它们也可以打印到另一张纸上的另外两个单元格上。每周他们印刷的这些细胞向下移动一个。例如第1周,两个单元格以A1和B1打印。第2周,它们以A2和B2打印,依此类推。
我知道如何在Excel中执行此操作但不知道如何将其更改为Google表格/脚本。
答案 0 :(得分:1)
假设:
input!A1
和input!B1
;和output!A
和output!B
。您可以通过单击菜单上的“工具”并输入“脚本编辑器”来编写脚本。
然后写下这个函数:
function writeData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var input = ss.getSheetByName("input")
.getRange(1, 1, 1, 2)
.getValues();
var outputSheet = ss.getSheetByName("output");
var numRows = outputSheet.getLastRow();
outputSheet.getRange(numRows + 1, 1)
.setValue(input[0][0]);
outputSheet.getRange(numRows + 1, 2)
.setValue(input[0][1]);
}
接下来,设置一个触发器。在“脚本编辑器”中的“资源”下,选择“当前项目的触发器”,然后设置触发器。如果您希望每周运行一次,请使用时间驱动的触发器。您还可以设置电子表格驱动的触发器,以便在每次编辑时运行。保存一切。
如果您不想使用自动触发器,可以通过在电子表格的菜单栏上添加项目来执行writeData()
功能:
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [];
menuEntries.push({name: "Write data", functionName: "writeData"});
ss.addMenu("Custom functions", menuEntries);
}
保存,如果您刷新电子表格,则会在菜单栏上看到新项目。