Google 电子表格 - 使用一个单元格获取另一个单元格上次更新日期



我刚开始使用谷歌表格,在设置脚本时遇到了问题。 我需要一个单元格(假设"AF4"(来获取另一个单元格(假设"X4"(的最后修改日期。 这是我到目前为止的脚本:

`function onEdit(e)
{
var sheet = SpreadsheetApp.getActiveSheet();
var editRange = sheet.getActiveRange();
var editRow = editRange.getRow();
var editCol = editRange.getColumn();
var range = sheet.getRange("X4");
var rangeRow = range.getRow();
var rangeCol = range.getColumn();
if (editRow = rangeRow && editCol = rangeCol)
{
sheet.getRange("AF4").setValue(new Date());
}
}`

当我尝试保存它时,它说"左侧无效传输,第 1 行,"代码" " 我真的很感激任何帮助。 谢谢 柯蒂

您的条件的语法似乎错误,这就是错误出现的原因:)

if (editRow = rangeRow && editCol = rangeCol)

如果要根据更多条件进行检查,语法必须

if (condition) {
block of code to be executed if the condition is true
if (condition) {
block of code to be executed if the condition is true
}
}`

我修改了一些你的代码,你得到了一个想法,为了实现你的目标需要做什么,这个脚本来获取 X 列的最后修改日期并将"新日期"发布到 AF4 中(所以每当你编辑一些东西在"x"列和第 4 行时,日期将在 AF4 中设置

(
function onEdit() {
var sheet = SpreadsheetApp.getActiveSheet();
var editRange = sheet.getActiveRange();
var editRow = editRange.getRow();
var editCol = editRange.getColumn();
var editCell = sheet.getActiveCell();
var range = sheet.getRange("X4");
var rangeRow = range.getRow();
var rangeCol = range.getColumn();
if( sheet.getName() == "Sheet1" ) { //checks that we're on the correct sheet
if( editCell.getColumn() == 24 ) { //checks that we're on the correct column ; column x = 24
if( editCell.getRow() == 4 ) { //checks that we're on the correct row ; row 4 = 4
sheet.getRange("AF4").setValue(new Date());
SpreadsheetApp.getActive().toast('Data changed', 'Info', 2); //give a Info, that something was done correctly
}
}
}
}

希望这对您有所帮助!

编辑

来自注释请求的脚本,每当更改 X 列上的某些内容时,将日期添加到同一行的 AF 列

function onEdit() { 
var sheet = SpreadsheetApp.getActiveSheet(); 
var editRange = sheet.getActiveRange(); 
var editCol = editRange.getColumn(); 
var editCell = sheet.getActiveCell(); 
var range = sheet.getRange("X4"); 
if( editCell.getColumn() == 24 ) { 
var rangeCol = range.getColumn();
var editRow = editRange.getRow(); 
sheet.getRange(editRow,rangeCol+8).setValue(new Date()); //use the RangeCol + 8 Columns 
SpreadsheetApp.getActive().toast('Date added', 'Info', 2); //this line can be deleted 
} 
}

相关内容

最新更新