Google apps script 比较用户更改后的值
我有一个触发它的函数,每当“K”列发生变化时,OnEdite函数就会调用它。 从本质上讲,本专栏负责收集特定呼叫是打开还是关闭的信息—这是一个CRM系统 这段代码工作得很好,但是比较的信息是错误的-如果值“关闭”或“未关闭”,则在用户更改此值后进行比较,因此它变得不相关 在用户实际更改值之前,是否有任何方法进行此比较?或者将其与更改前的值进行比较Google apps script 比较用户更改后的值,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个触发它的函数,每当“K”列发生变化时,OnEdite函数就会调用它。 从本质上讲,本专栏负责收集特定呼叫是打开还是关闭的信息—这是一个CRM系统 这段代码工作得很好,但是比较的信息是错误的-如果值“关闭”或“未关闭”,则在用户更改此值后进行比较,因此它变得不相关 在用户实际更改值之前,是否有任何方法进行此比较?或者将其与更改前的值进行比较 function isClosedColumnChanged(e) { var ss = SpreadsheetApp.getActiveSpre
function isClosedColumnChanged(e)
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
//Get Active cell
var mycell = ss.getActiveSelection();
var cellrow = mycell.getRow();
var isClosed = 'K' + (cellrow);
if (cellcol == 11)
{
if (sheet.getRange(isClosed).getValue() == "closed")
{
messageit('its forbidden to close already-closed call');
}
}
}
请查看编辑触发器对象上的: 试着从
if (cellcol == 11)
{
if (sheet.getRange(isClosed).getValue() == "closed")
{
messageit('its forbidden to close already-closed call');
}
}
到
注意:只需编辑一个单元格即可使用e.value和e.oldValue:
oldValue:编辑前的单元格值(如果有)。仅当编辑的区域是单个单元格时可用。如果单元格没有以前的内容,则将未定义
值:编辑后的新单元格值。仅当编辑的区域是单个单元格时可用
在尝试确定新值和旧值时,在on edit函数中引用活动单元格/活动工作表是不正确的。使用事件对象!
if (e.range.getColumn() == 11) // If edited column is 11
{
//If new value is closed and oldValue is also closed
if (e.value == "closed" && e.oldValue == "closed")
{
messageit('its forbidden to close already-closed call');
}
}