我正在尝试创建一个宏,以显示一个框提示,以确认诸如“您要清除工作表吗?”之类的操作。是或否的问题。 如果是,则删除给定的单元格 如果否,则不执行任何操作。
是条件起作用。但是我似乎无法使NO起作用。即使单击“否”,它仍然会执行clear命令。我在做什么错了?
我不太熟悉编码。我只是依靠Google。我试图将“ else”更改为“ End if”,也尝试了“ then”,但均无效果。我不确定如何停止运行代码。
function myFunction() {
var sh1=SpreadsheetApp.getActive();
var sheet1=sh1.getSheetByName("Sheet1")
var sh=SpreadsheetApp.getUi();
var response=sh.alert("Clear?",sh.ButtonSet.YES_NO)
if(response.YES);{
var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
sheet.getRange('b1:b21').clearContent();
sheet.getRange('C13:C18').clearContent();
}
Else {}
}
即使从提示符处单击“否”,它仍然会执行clearContent命令。
答案 0 :(得分:0)
您没有正确使用response
。它包含一个UI.Button.YES
或UI.Button.NO
值。正确的测试将是
function myFunction() {
var sh1 = SpreadsheetApp.getActive();
var sheet1 = sh1.getSheetByName("Sheet1")
var sh = SpreadsheetApp.getUi();
var response = sh.alert("Clear?", sh.ButtonSet.YES_NO)
if(response == UI.Button.YES) {
var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
sheet.getRange('b1:b21').clearContent();
sheet.getRange('C13:C18').clearContent();
}
}
有关更多信息,请参见UI.Alert的文档
(在;
之后,您在原始代码中还有if()
和if(response.YES);{
被错放了,我的答案也删除了。)