小编Phi*_*hil的帖子

谷歌表格脚本| 全局变量在 html 侧边栏/模态窗口后失去其值

大家好,我有一个团队假期日历。用户按字母“v”来设置假期日期,假期日期存储在外部工作表中(用于其他目的,因此我不能简单地在同一电子表格中拥有单独的工作表)。

问题是,假期日期可以是“付费”或“银行”(以便稍后记入)。我使用模态 Html 窗口询问用户假期是两者中的哪一个。但是,我在打开 html 模式窗口之前设置的全局变量失去了它们的值。我需要这些全局变量来存储原始条目的行和列(因为用户在键入“v”后单击单元格会更改 getActiveCell() 的值。

应该发生什么:

  1. 用户输入“v”
  2. 弹出 html 窗口“这是什么假期类型?银行假期还是付费假期?
  3. 代码将假期日期输入外部电子表格。
  4. 代码将“已付款”或“已银行”值输入到外部电子表格中。

我可以让它进行到上面的步骤 3,但是,全局变量正在丢失其值,并且无法确定用户最初单击的单元格。

步骤1

步骤1

第2步

第2步

var selectedDateRangeRow;
var selectedDateRangeColumn;

function onEdit(e) {
  if (sheet.getRange("AH2").getValue() == true && sheet.getActiveCell().getValue() == "V") {
    selectedDateRangeRow = sheet.getActiveCell().getRow();
    selectedDateRangeColumn = sheet.getActiveCell().getColumn();
    ShowVacationMenu();
  }
}

function ShowVacationMenu() {
  var html = HtmlService.createHtmlOutputFromFile('VacationType').setTitle("New Vacation Date");
  SpreadsheetApp.getUi().showModalDialog(html, "Select Vacation Type");
}

function AddDateToOverTimeSheet(selectedVacationType) {
  Browser.msgBox(selectedDateRangeRow);     //This global value returns empty/null.
}
Run Code Online (Sandbox Code Playgroud)

html 文件:

<!--Let browser know website is optimized for mobile-->
<meta name="viewport" …
Run Code Online (Sandbox Code Playgroud)

javascript google-apps-script

0
推荐指数
1
解决办法
439
查看次数

标签 统计

google-apps-script ×1

javascript ×1