如何将PropertiesService.getScriptProperties().getProperty("range")设置为变量

问题描述 投票:0回答:1

我正在尝试从 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)
}

对此感到非常困惑。

google-apps-script dialog
1个回答
0
投票

这对我有用:

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
© www.soinside.com 2019 - 2024. All rights reserved.