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

时间:2017-07-10 20:30:45

标签: excel google-sheets

我刚刚开始使用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行”,代码“” 我真的很感激任何帮助。 谢谢, CURTY

1 个答案:

答案 0 :(得分:0)

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

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列的最后修改日期并发布"新日期&#34 ;进入AF4(所以无论何时你在列#34上编辑某些内容; 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 
  } 
}