我刚刚开始使用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
答案 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
}
}