使用链接到脚本的按钮时,选定的单元格不会更新
Selected cell does not update when using button linked to script
我有一个 sheet 供用户输入现金计数和他们的首字母,然后点击一个按钮,该按钮运行一个脚本并将这些输入存储在 table。
问题是,如果用户键入信息(例如他们的姓名首字母)并在没有先按下 Return 或选择其他单元格的情况下点击按钮,则不会保存信息。
我见过类似的 post:
How to force flush a user's input?
并尝试了解决方案,但有些解决方案不起作用,而 none 正是我要找的。我知道我可以使用复选框而不是按钮,但我想找到一种方法来做到这一点而不诉诸于此。 table 是收银台的现金计数,因此并非所有单元格都需要一个值(例如,可能没有 100 美元的纸币),我不知道哪个是最后编辑的单元格。
[数据][1]
[1]: https://i.stack.imgur.com/mdKXk.png
代码:
function Accept() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var db = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DATA");
var vals = db.getRange("B:B").getValues();
var last = vals.filter(String).length;
var ui = SpreadsheetApp.getUi();
var user = ui.prompt("Notes:");
var values = [[
sheet.getRange("I7").getValue(), //Date/Time
sheet.getRange("N16").getValue(), //Amount
sheet.getRange("E17").getValue(), //Initials
user.getResponseText(), //Notes
]];
db.getRange(last+1,2,1,4).setValues(values);
}
一个解决方案是使用复选框作为 接受 按钮,并使用 onEdit(e)
simple trigger 到 运行 您的 Accept()
函数。
查看示例代码的 checkboxButtons_ 脚本。
我有一个 sheet 供用户输入现金计数和他们的首字母,然后点击一个按钮,该按钮运行一个脚本并将这些输入存储在 table。
问题是,如果用户键入信息(例如他们的姓名首字母)并在没有先按下 Return 或选择其他单元格的情况下点击按钮,则不会保存信息。
我见过类似的 post: How to force flush a user's input? 并尝试了解决方案,但有些解决方案不起作用,而 none 正是我要找的。我知道我可以使用复选框而不是按钮,但我想找到一种方法来做到这一点而不诉诸于此。 table 是收银台的现金计数,因此并非所有单元格都需要一个值(例如,可能没有 100 美元的纸币),我不知道哪个是最后编辑的单元格。
[数据][1] [1]: https://i.stack.imgur.com/mdKXk.png
代码:
function Accept() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var db = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DATA");
var vals = db.getRange("B:B").getValues();
var last = vals.filter(String).length;
var ui = SpreadsheetApp.getUi();
var user = ui.prompt("Notes:");
var values = [[
sheet.getRange("I7").getValue(), //Date/Time
sheet.getRange("N16").getValue(), //Amount
sheet.getRange("E17").getValue(), //Initials
user.getResponseText(), //Notes
]];
db.getRange(last+1,2,1,4).setValues(values);
}
一个解决方案是使用复选框作为 接受 按钮,并使用 onEdit(e)
simple trigger 到 运行 您的 Accept()
函数。
查看示例代码的 checkboxButtons_ 脚本。