Google apps script getUi()警报未执行响应
此脚本将Google工作表中的一行从一个工作表移动到另一个工作表。如果没有警报框,它可以正常工作。我正试图在移动前添加一个框进行确认。框显示,但当我单击“是”时,什么也没有发生。我也在提示下尝试了一下,但没有结果 我该怎么做才能正确使用此功能Google apps script getUi()警报未执行响应,google-apps-script,google-sheets,Google Apps Script,Google Sheets,此脚本将Google工作表中的一行从一个工作表移动到另一个工作表。如果没有警报框,它可以正常工作。我正试图在移动前添加一个框进行确认。框显示,但当我单击“是”时,什么也没有发生。我也在提示下尝试了一下,但没有结果 我该怎么做才能正确使用此功能 function onEdit(event) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = event.source.getActiveSheet(); var r = ev
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);
}
}
}
您没有将“response”变量设置为提示响应。尝试将此作为您的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);
}