当e11
中的值不同于";MC ou CC";
我可以从提示中获取值,并将其显示在logger.log
中,但不知何故,该值没有传输到D11
单元格。
Function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName("Demande");
if(s.getRange("E11").getValue() != "MC ou CC"){
var ui = SpreadsheetApp.getUi() ;
var Bouton = ui.prompt('Veuillez entrer le montant du paiement
mensuel', ui.ButtonSet.OK_CANCEL);
var Reponse = Bouton.getResponseText();
if (Bouton == ui.Button.OK) {
Logger.log('The user clicked "OK" or the close button in the d
ialog's title bar.'+Reponse);
s.getRange("D11").setValue(Reponse);
} else {
Logger.log('The user clicked "No" or the close button in the
dialog's title bar.'+Reponse);
}
}
}
问题:
您需要获取getSelectedButton((,以便找出用户单击的按钮。
基于您答案的解决方案:
将if(Bouton == ui.Button.OK)
替换为if(Bouton.getSelectedButton() == ui.Button.OK)
:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName("Demande");
if(s.getRange("E11").getValue() != "MC ou CC"){
var ui = SpreadsheetApp.getUi() ;
var Bouton = ui.prompt('Veuillez entrer le montant du paiement mensuel', ui.ButtonSet.OK_CANCEL);
var Reponse = Bouton.getResponseText();
if (Bouton.getSelectedButton() == ui.Button.OK) {
Logger.log('The user clicked "OK" or the close button in the dialog's title bar.'+Reponse);
s.getRange("D11").setValue(Reponse);
} else {
Logger.log('The user clicked "No" or the close button in the dialog's title bar.'+Reponse);
}
}
}
由于您手动执行此函数,因此不需要使用onEdit
触发器。相反,您可以使用常规函数,因此我更改了名称。如果要正确使用onEdit
触发器,请参阅下面的推荐答案。
推荐解决方案:
onEdit
触发器和一般触发器功能不应该像现在这样手动运行- 当用户更改的值时,
onEdit
触发器被激活细胞
利用事件对象:
function onEdit(e) {
var ss = e.source;
var s = ss.getActiveSheet();
var rng = e.range;
if(s.getName() == "Demande" && rng.getA1Notation()=='E11' && rng.getValue()!="MC ou CC"){
var ui = SpreadsheetApp.getUi();
var Bouton = ui.prompt('Veuillez entrer le montant du paiement mensuel', ui.ButtonSet.OK_CANCEL);
var Reponse = Bouton.getResponseText();
if (Bouton.getSelectedButton() == ui.Button.OK) {
Logger.log('The user clicked "OK" or the close button in the dialog's title bar.'+Reponse);
s.getRange("D11").setValue(Reponse);
} else {
Logger.log('The user clicked "No" or the close button in the dialog's title bar.'+Reponse);
}
}
}
小心:
此解决方案使用事件对象,建议使用
onEdit
触发器。如果手动执行该函数,这将不起作用。只有当用户更改单元格的值时,它才会起作用。它假设您在编辑工作表
"Demande"
中单元格'E11'
的值时,只想在主if
条件内执行代码。因此,只有当您在"Demande"
中编辑单元格'E11'
时,它才会起作用。
如果您想要不同的行为,请告诉我,我会相应地修改代码。