如何确定特定单元格范围是否已在 Google 表格中更新?
How to find out if a specific cell range has been updated in Google Sheets?
我正在制作一个电子表格,它需要查明某个单元格范围是否已被编辑,然后添加编辑日期。我有需要编辑的单元格范围,如果我从不同的列对 table 进行排序,我也不希望日期发生变化。
我认为总体思路应该是这样的,而不是实际代码只是一个想法:
cell_range=(b2:d2)
if (cell_range)==editted:
date()
if (table_sort==True):
date_change==False
如果有人知道如何执行此操作,将不胜感激。
你需要一个脚本。尝试例如:
function onEdit(e) {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet1" ) {
var r = s.getActiveCell();
if( r.getColumn() == 2 ) {
var nextCell = r.offset(0, 8);
var newDate = Utilities.formatDate(new Date(),
"GMT+8", "MM/dd/yyyy");
nextCell.setValue(newDate);
}
if( r.getColumn() == 3 ) {
var nextCell = r.offset(0, 7);
var newDate = Utilities.formatDate(new Date(),
"GMT+8", "MM/dd/yyyy");
nextCell.setValue(newDate);
}
if( r.getColumn() == 4 ) {
var nextCell = r.offset(0, 6);
var newDate1 = Utilities.formatDate(new Date(),
"GMT+8", "MM/dd/yyyy");
nextCell.setValue(newDate1);
}}}
"Sheet1"
= sheet 名字
r.getColumn() == 3
= C 列/第 3 列
r.offset(0, 7)
= 在同一行向右偏移时间戳 7 列,例如列 H
"GMT+8"
= 时区
"MM/dd/yyyy hh:mm:ss"
= 日期和时间格式
备选方案(未测试):
function onEdit(e) {
if ([2].indexOf(e.range.columnStart) != -1) {
e.range.offset(0, 7).setValue(new Date()); }
if ([3].indexOf(e.range.columnStart) != -1) {
e.range.offset(0, 6).setValue(new Date()); }
if ([4].indexOf(e.range.columnStart) != -1) {
e.range.offset(0, 5).setValue(new Date()); } }
我正在制作一个电子表格,它需要查明某个单元格范围是否已被编辑,然后添加编辑日期。我有需要编辑的单元格范围,如果我从不同的列对 table 进行排序,我也不希望日期发生变化。
我认为总体思路应该是这样的,而不是实际代码只是一个想法:
cell_range=(b2:d2)
if (cell_range)==editted:
date()
if (table_sort==True):
date_change==False
如果有人知道如何执行此操作,将不胜感激。
你需要一个脚本。尝试例如:
function onEdit(e) {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet1" ) {
var r = s.getActiveCell();
if( r.getColumn() == 2 ) {
var nextCell = r.offset(0, 8);
var newDate = Utilities.formatDate(new Date(),
"GMT+8", "MM/dd/yyyy");
nextCell.setValue(newDate);
}
if( r.getColumn() == 3 ) {
var nextCell = r.offset(0, 7);
var newDate = Utilities.formatDate(new Date(),
"GMT+8", "MM/dd/yyyy");
nextCell.setValue(newDate);
}
if( r.getColumn() == 4 ) {
var nextCell = r.offset(0, 6);
var newDate1 = Utilities.formatDate(new Date(),
"GMT+8", "MM/dd/yyyy");
nextCell.setValue(newDate1);
}}}
"Sheet1"
= sheet 名字r.getColumn() == 3
= C 列/第 3 列r.offset(0, 7)
= 在同一行向右偏移时间戳 7 列,例如列 H"GMT+8"
= 时区"MM/dd/yyyy hh:mm:ss"
= 日期和时间格式
备选方案(未测试):
function onEdit(e) {
if ([2].indexOf(e.range.columnStart) != -1) {
e.range.offset(0, 7).setValue(new Date()); }
if ([3].indexOf(e.range.columnStart) != -1) {
e.range.offset(0, 6).setValue(new Date()); }
if ([4].indexOf(e.range.columnStart) != -1) {
e.range.offset(0, 5).setValue(new Date()); } }