我已经编写了一个自动编排脚本,该脚本应该在每次编辑Google工作表时运行。当我手动运行脚本时,它可以工作,当我手动编辑工作表中的单元格时,它会运行,但当Google表单向工作表添加一行时,它不会运行。谁知道为什么?评论中的月亮语言是瑞典语,但并不重要。
//Startar funktionen när en ändring görs i dokumentet
function onEdit(event){
//Om man sätter ascending = false sorterar scriptet i omvänd ordning.
ascending = true
//Hämtar det aktuella kalkylbladet och kollar vilka celler som ändrats.
var sheet = SpreadsheetApp.getActiveSpreadsheet()
var editedCell = sheet.getActiveCell();
//Ställer in vilken kolumn det ska sorteras på.
var columnToSortBy = 1;
//Ska egentligen hämta alla aktiva celler till variablen tableRange, men gör det inte. Kan förmodligen tas bort.
var tableRange = sheet.getActiveRange()
//Sköter själva sorteringen om något ändras i kolumn 1.
if(editedCell.getColumn() == columnToSortBy){
//Här ställer jag det som egentligen skulle vara tableRange från cellerna A2:G99 och sen görs själva sorteringen.
var range = sheet.getRange("A2:G99");
range.sort( { column : columnToSortBy } );
}
}
答案 0 :(得分:0)
编辑if if触发器仅在用户编辑单元格时起作用。您可以尝试使用on表单提交事件。
答案 1 :(得分:0)
立即突出的第一个错误是:
var ascending = true
应该是
onEdit(event)
继续研究更细微的问题。编写整个函数是为了支持电子表格上的手动编辑。只要您手动对电子表格进行修改,var editedCell = sheet.getActiveCell();
var tableRange = sheet.getActiveRange()
就会触发。要在表单提交时触发脚本,您必须使用可安装的触发器(阅读here)。
如果您的脚本因提交表单而运行,则这些脚本没有任何价值:
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian
npm ERR! Error: ENOENT, lstat '/usr/local/lib/node_modules/aglio/node_modules/drafter/node_modules/protagonist/drafter/ext/sos/test/ext/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Linux 3.4.0+
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "aglio"
npm ERR! cwd /mnt/c/Users/HEWLETT PACKARD'
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.10
npm ERR! path /usr/local/lib/node_modules/aglio/node_modules/drafter/node_modules/protagonist/drafter/ext/sos/test/ext/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj
npm ERR! fstream_path /usr/local/lib/node_modules/aglio/node_modules/drafter/node_modules/protagonist/drafter/ext/sos/test/ext/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! weird error 1
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /mnt/c/Users/HEWLETT PACKARD'/npm-debug.log
npm ERR! not ok code 0
因为没有活动范围或活动单元格。这些是指触发脚本时在“表格”编辑器中选择的单元格。您需要根据表单提交触发器重写它(阅读有关事件处理程序here)