2013-12-16 65 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