[英]Log changes on Google Script (Google Spreadsheets)
I'm looking to create a spreadsheet where it logs data and the changes you make on it.我希望创建一个电子表格,用于记录数据和您对其所做的更改。
For example in sheet , I used a Google Script to do it but instead of only logging in a particular row when you change the data on Sheet1
, it copies all the data you changed since the beginning on Sheet 2
.例如在sheet中,我使用 Google Script 来执行此操作,但当您更改Sheet1
上的数据时,它不会仅记录特定行,而是复制自Sheet 2
开始以来更改的所有数据。 I only want to log a particular row each time I make a change.每次进行更改时,我只想记录特定的行。
Here's my code这是我的代码
* Retrieves all the rows in the active spreadsheet that contain Yes
* in the Include column and copies them to the Report sheet.
*/
function myFunction() {
var sSheet = SpreadsheetApp.getActiveSpreadsheet();
var srcSheet = sSheet.getSheetByName("Sheet1");
var tarSheet = sSheet.getSheetByName("Sheet2");
var lastRow = srcSheet.getLastRow();
for (var i = 2; i <= lastRow; i++) {
var cell = srcSheet.getRange("B" + i);
var val = cell.getValue();
if (val == 'Yes') {
var srcRange = srcSheet.getRange("A" + i + ":D" + i);
var tarRow = tarSheet.getLastRow();
tarSheet.insertRowAfter(tarRow);
var tarRange = tarSheet.getRange("A" + (tarRow+1) + ":D" + (tarRow+1));
srcRange.copyTo(tarRange);
}
}
};
Can anyone please help?有人可以帮忙吗?
function onEdit(e) {
var srcSheet = e.source.getActiveSheet();
if (srcSheet.getSheetName() !== 'Sheet1') { return; }
var row = e.range.rowStart;
var cols = 4;
var srcRange = srcSheet.getRange(row, 1, 1, cols);
var values = srcRange.getValues()[0];
if (values[1] == 'Yes') {
var tarSheet = e.source.getSheetByName('Sheet2');
tarSheet.appendRow(values);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.