表格连接到表格。添加新表单条目时不会运行

时间:2018-01-15 07:41:28

标签: google-apps-script

我已经编写了一个自动编排脚本,该脚本应该在每次编辑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 } );
  }
}

2 个答案:

答案 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