使用自定义表单在 google 个工作表上创建弹出表单

Creating a pop-up form on google sheets using custom forms

我对在 google 工作表上创建函数还很陌生,因此我很难创建 return 从弹出表单中获取值的代码。 我一直在玩弄 Google Apps 脚本中的这段代码:

var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Getting to know you', 'May I know your name?', ui.ButtonSet.YES_NO);

if (response.getSelectedButton() == ui.Button.YES) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else if (response.getSelectedButton() == ui.Button.NO) {
  Logger.log('The user didn\'t want to provide a name.');
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

并且想知道是否有办法将 return response.getResponseText 到一个单元格。 当我在“logger.log”部分所在的位置使用“return”函数时,我不断收到错误 - 'Cannot call SpreadsheetApp.getUi() from this context'

是否有另一种方法,在编辑这个脚本时,或者我应该以不同的方式解释为用户交互获取弹出表单。

谢谢

自定义函数有限制,不能调用SpreadsheetApp.getUi()

作为替代方法,您可以绘制一个自定义按钮,您可以 assign a script

您可以这样设计脚本,将值设置到单击按钮时处于活动状态的单元格。

示例

function myFunction() {
  var cell = SpreadsheetApp.getCurrentCell();
  var ui = SpreadsheetApp.getUi();
  var response = ui.prompt('Getting to know you', 'May I know your name?', ui.ButtonSet.YES_NO);
  var output;
  if (response.getSelectedButton() == ui.Button.YES) {
    output = 'The user\'s name is '+ response.getResponseText();
  } else if (response.getSelectedButton() == ui.Button.NO) {
    output = 'The user didn\'t want to provide a name.';
  } else {
    output = 'The user clicked the close button in the dialog\'s title bar.';
  }
  cell.setValue(output);
}