2017-11-21 7 views
2

このスクリプトは、Googleシート内の行を1つのシートから別のシートに移動します。警告ボックスなしで正常に動作します。私は移動する前に確認のためにボックスに追加しようとしています。ボックスは表示されますが、「はい」をクリックすると何も起こりません。プロンプトを出してみたところ、結果はありませんでした。getUi()は応答を実行していません

この機能を正しく使用するにはどうすればよいですか?

function onEdit(event) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var s = event.source.getActiveSheet(); 
    var r = event.source.getActiveRange(); 
    var sourceSheet = "Source"; // Name of sheet copy from 
    var targetSheet = "Destination"; // Name of sheet copy to 
    var targetSheet = ss.getSheetByName(targetSheet); 
    var ui = SpreadsheetApp.getUi(); 

function CountColB(){ // Function to get first filled column B, starting from bottom. 
    var data = targetSheet.getDataRange().getValues(); 
    for(var i = data.length-1 ; i >=0 ; i--){ 
    if (data[i][1] != null && data[i][1] != ''){ 
     return i+1 ; 
    }}} 
var lastRow = CountColB(); 

    if(s.getName() == sourceSheet && r.getColumn() == 1 && r.getValue() == "X") { 
    var row = r.getRow(); 
    var numColumns = s.getLastColumn(); 
    var target = targetSheet.getRange(lastRow + 1, 2); 
    ui.alert('Move Row?', ui.ButtonSet.YES_NO); 
    if (response == ui.Button.YES) { 
    s.getRange(row, 2, 1, numColumns).moveTo(target); 
    s.deleteRow(row); 
} 

    } 
} 

答えて

1

「応答」変数をプロンプト応答に設定していません。 if文として試してください:

if(s.getName() == sourceSheet && r.getColumn() == 1 && r.getValue() == "X") { 
    var row = r.getRow(); 
    var numColumns = s.getLastColumn(); 
    var target = targetSheet.getRange(lastRow + 1, 2); 
    var response = ui.alert('Move Row?', ui.ButtonSet.YES_NO); 
    if (response == ui.Button.YES) { 
    s.getRange(row, 2, 1, numColumns).moveTo(target); 
    s.deleteRow(row); 
} 
関連する問題