2017-09-29 15 views
1

新谷歌脚本和似乎要管理好,但遇到了一个问题..谷歌脚本如果与列号声明

我有“的编辑”,我想只运行,如果用户编辑的触发器单元格在第3列中。使用下面的代码,它将运行,而不管哪一列被编辑。希望有人能帮忙。感谢

function sendNotification2() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getActiveSheet(); 
var cell = ss.getActiveCell().getA1Notation(); 
var row = ss.getActiveRange().getRow(); 
var column = ss.getActiveRange().getColumn(); 

if(column = 3){ 
Browser.msgBox('you edited column 3!', Browser.Buttons.OK); 
} 
}; 

回答

0

替换此:

如果(柱= 3)

这是一个赋值

随着此:

如果(柱== 3 )

经过进一步审查,我也会尝试这个。

function sendNotification2() 
{ 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getActiveSheet(); 
var cell = sheet.getActiveCell(); 
var row = cell.getRow(); 
var column = cell.getColumn(); 
if(column == 3) 
{ 
    var ui=HtmlService.createHtmlOutput('column3.'); 
    SpreadsheetApp.getUi().showModelessDialog(ui, 'You Edited') 
} 
} 

这里的另一种方式去:

function onEdit(e) 
{ 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getActiveSheet(); 
var cell = sheet.getActiveCell(); 
var row = cell.getRow(); 
var column = cell.getColumn(); 
if(column == 3) 
{ 
    var s=Utilities.formatString('You edited column %s row %s oldvalue = %s newvalue = %s ', column, row, e.oldValue, e.value); 
    var ui=HtmlService.createHtmlOutput(s); 
    SpreadsheetApp.getUi().showModelessDialog(ui, 'Column 3 Edits') 
} 
} 
+0

优秀,非常感谢你! –

+0

您可能想要再次检查答案。我在函数中添加了一些东西,并将名称改为onEdit()以使用简单的触发器。 – Cooper

+0

您可以使用事件参数并削减一些代码。例如'var column = e.range.getColumn()'会返回一个你可以在'if'语句中测试的整数。 – Brian