我已经整理了一个脚本,该脚本连续获取4个单元格的值,A23:E23,如果该行中的特定(H3)单元格包含文本&#34,则复制其他工作表中的值实况#34 ;.
脚本需要每天运行,据我所知,我可以轻松完成,但它还需要使用包含值的第23行下面的每一行,并使用 reportData 和 ifd 变量分别工作。即。
var reportData = reportSheet.getRange("A24...A25...A26:E24...E25...E26").getValues();
var lastRow = recordsSheet.getLastRow();
var ifd = reportSheet.getRange("H24...H25...H25").getValue();
此脚本背后的想法是捕获Sheet1中值的每日快照,因为值会不断更新,但作为累积数字。我需要记录这些累积数据的每日记录。
function appendToRecords() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var reportSheet = ss.getSheetByName("Sheet1");
var recordsSheet = ss.getSheetByName("database")
var reportData = reportSheet.getRange("A23:E23").getValues();
var lastRow = recordsSheet.getLastRow();
var ifd = reportSheet.getRange("H23").getValue();
if (ifd == "Live"){
recordsSheet.getRange("A2:E2")
.setValues(reportData); }}
有人可以建议这样做吗?
这是脚本使用的示例表:https://docs.google.com/spreadsheets/d/1FMlj_9l7Sm0QMKcFpbC4iExbATgPL0jIWoVrvV_Vcfw/edit?usp=sharing
谢谢!
答案 0 :(得分:1)
您可以轻松记录所有" live"像这样的行到你的数据库:
function appendToRecords() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var reportSheet = ss.getSheetByName("Sheet1");
var recordsSheet = ss.getSheetByName("database")
var reportData = reportSheet.getRange("A8:H").getValues();
// Get only rows that are "Live"
// And only get the first five colums
var toWrite = reportData.filter(function(row) {
return row[7] === "Live";
}).map(function(row) {
return row.splice(0, 5);
});
if(!toWrite.length) {return;} // Return if nothing to write
recordsSheet
.getRange(recordsSheet.getLastRow() + 1, 1,
toWrite.length, toWrite[0].length)
.setValues(toWrite);
}