我的谷歌电子表格脚本只运行一个函数.我把剧本编错了吗
My google spreadsheet script only runs one function. Am I coding the script wrong?
第一个函数可以很好地进行排序,但我无法让归档行的第二个函数同时工作。
function onEdit(event){
var sheet = event.source.getActiveSheet();
var editedCell = sheet.getActiveCell();
var columnToSortBy = 10;
var tableRange = "J:J3"; // What to sort.
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy, ascending: true } );
function onEdit2(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Orders" && r.getColumn() == 10 && r.getValue() == "5. Archive") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Archive");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
}
}
您在if语句块中定义了onEdit2(event)
,但从未执行它。
在块内部定义这样的函数是不好的做法。你不能真的有条件地定义一个函数。请参阅此链接以了解有关为什么会出现这种情况的更多信息。
如果if
条件为true,则似乎要执行onEdit2
函数。
如果是这样的话,你应该全局定义函数,这样你就可以在任何需要的地方执行它
你可能想做这样的事情:
function onEdit(event){
var sheet = event.source.getActiveSheet();
var editedCell = sheet.getActiveCell();
var columnToSortBy = 10;
var tableRange = "J:J3"; // What to sort.
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort( { column : columnToSortBy, ascending: true } );
onEdit2(event); // Execute the function, passing it whatever event was passed to onEdit
}
} // End definition of onEdit
function onEdit2(passedEvent) { // Do the actual function definition out here
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = passedEvent.source.getActiveSheet();
var r = passedEvent.source.getActiveRange();
if(s.getName() == "Orders" && r.getColumn() == 10 && r.getValue() == "5. Archive") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Archive");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
相关文章:
- 我怎么把范围弄错了?无法从jQuery访问此函数;.在“上”;
- JavaScript 错误:未捕获的类型错误:undefined 不是第 4 行的函数;我不知道我做错了什么
- 在 c#.net 中执行 javascript 函数.我做错了什么
- Javascript Date.getTime 函数没有返回正确的值,或者我做错了什么
- D3 TypeError: link.exit 不是函数 link.exit().remove();我做错了什么
- 当单击jquery-ui选项卡时,我需要运行一个函数,我做错了什么
- 我在nodejs/mongodb上的更新函数上做错了什么
- 回调不是一个函数:我做错了什么
- 函数仍在异步调用.我做错了什么
- 我有一个javascript函数,我可以'Don't tell what I;我做错了
- 我的谷歌电子表格脚本只运行一个函数.我把剧本编错了吗
- 在类的每个项上运行jquery函数,我做错了什么
- 我以为我有一个this引用传递到Javascript闭包中的私有函数,我想错了
- onComplete属性必须是javascript函数名;我打错了什么?
- Backbone.Model.extend()不是一个函数,我做错了什么?
- appendChild不是一个函数-我做错了什么?
- AngularJS-链接函数中的作用域被重置,我做错了什么
- 什么'错了我的ajax函数获取图像
- 中值JS函数.错了
- 使用JavaScript函数作为“类”:我在这里做错了什么?