2013-12-16 69 views
1

我以前使用下面的这个谷歌脚本将信息从一个表格移动到另一个表格,这是基于一列中的条件值(第12列)。但是,它刚刚停止响应/最近运行,我不明白为什么。我玩过触发器,我尝试在一个新脚本中使用它,并更改了一些名称和列#,但似乎没有任何工作。有什么建议,我可以看看发生了什么?我的谷歌脚本不再运行

function onEdit(e) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var s = ss.getActiveSheet(); 
    var r = ss.getActiveRange(); 
    if(s.getName() == "Phx-DFF" && r.getColumn() == 12 && r.getValue() == "no") 
    { 
     var row = r.getRow(); 
     var numColumns = s.getLastColumn(); 
     var targetSheet = ss.getSheetByName("NY-DFF"); 
     if(targetSheet.getLastRow() == targetSheet.getMaxRows()) 
     { 
      targetSheet.insertRowsAfter(targetSheet.getLastRow(), 5); //inserts 20 rows after last used row 
     } 
     var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1); 
     s.getRange(row, 1, 14, numColumns).moveTo(target); 
     s.deleteRow(row); 
    } 
} 
+0

能帮你对剧本的目的更具体?你有任何错误信息?您可以尝试添加一些调试语句,如[这里]所述(https://developers.google.com/apps-script/troubleshooting#debugging) –

+0

该脚本的用途是在编辑脚本的第12列时,以及此编辑添加“否”,然后该行将被移至电子表格中的另一张表格中。这是否澄清了目的? – user3109145

+0

我在调试时没有收到错误消息,当我单击调试按钮时没有任何反应。 – user3109145

回答

0

您是否尝试过使用日志记录或在调试模式下运行该函数,以查看运行此函数时发生的事件。

我要为大量的信息由eventinfo JSON提供建议的follwing更改功能:

function onEdit(e) { 
var ss = e.source; 
var r = e.Range; 

if(ss.getSheetName() == "Phx-DFF" && r.getColumn() == 12 && e.value == "no") 
{ 
    var s = ss.getActiveSheet(); 
    var row = r.getRow(); 
    var numColumns = s.getLastColumn(); 
    var targetSheet = ss.getSheetByName("NY-DFF"); 
    if(targetSheet.getLastRow() == targetSheet.getMaxRows()) 
    { 
     targetSheet.insertRowsAfter(targetSheet.getLastRow(), 5); //inserts 20 rows after last used row 
    }//I dont think this is necessary, GAS should takes care of this auto. Remove this part 
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1); 
    s.getRange(row, 1, 14, numColumns).moveTo(target); 
    s.deleteRow(row); 
} 
} 
+0

当我点击调试,它会......'准备执行onedit'....然后'调试函数onedit',然后没有任何反应。 – user3109145

+0

您需要指定一个断点,即脚本停止执行的点,您可以在执行时检查该点处的变量值(通过单击行号左侧并出现黄色点来执行此操作)。在if循环的第一行创建一个断点并运行调试模式,如果脚本没有停止,那么循环没有被输入。 –

+0

谢谢!我能弄明白了! – user3109145