我正在尝试从 HTML 对话框实现返回值 从这里
有
function saveRange() {
const ss = SpreadsheetApp.getActive();
PropertiesService.getScriptProperties().setProperty("range", `${SpreadsheetApp.getActiveSheet().getName()}!${SpreadsheetApp.getActiveRange().getA1Notation()}`);
ss.toast(PropertiesService.getScriptProperties().getProperty("range"));
}
function launchSaveRangeDialog() {
const html = '<!DOCTYPE html> <html lang="en"> <head> <base target="_top"> <title>My Html</title> </head> <body> <h1>Please Select a Range and Press Save</h1> <br><input type="button" value="Save" onClick="google.script.run.withSuccessHandler((v) => google.script.host.close()).saveRange();"> </body> </html>';
SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(html), "Save Dailog");
}
为什么我不能这样做
function saveRange() {
const ss = SpreadsheetApp.getActive();
PropertiesService.getScriptProperties().setProperty("range", `${SpreadsheetApp.getActiveSheet().getName()}!${SpreadsheetApp.getActiveRange().getA1Notation()}`);
let x = PropertiesService.getScriptProperties().getProperty("range");
let y = somefunction(x);
//OR even
console.log(x)
}
对此感到非常困惑。
这对我有用:
function saveMyRange() {
const ss = SpreadsheetApp.getActive();
PropertiesService.getScriptProperties().setProperty("range", `${SpreadsheetApp.getActiveSheet().getName()}!${SpreadsheetApp.getActiveRange().getA1Notation()}`);
let x = PropertiesService.getScriptProperties().getProperty("range");
console.log(x)
}
Execution log
3:53:29 PM Notice Execution started
3:53:29 PM Info Sheet0!B4
3:53:31 PM Notice Execution completed