我有一张google工作表,用户可以在其中更改某些值,然后按一个按钮。按下按钮后,这些条目将根据用户选择使用Google Apps脚本移动到其他工作表。
现在我想避免用户进行更改但没有按下按钮并关闭工作表或移动到另一张工作表的情况。 那么是否有一个事件我可以在它关闭之前捕获并验证它?
由于
答案 0 :(得分:0)
您可以尝试添加Prompt dialogs。
要评估用户的响应,请捕获function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.createMenu('Custom Menu')
.addItem('Show prompt', 'showPrompt')
.addToUi();
}
function showPrompt() {
var ui = SpreadsheetApp.getUi(); // Same variations.
var result = ui.prompt(
'Let\'s get to know each other!',
'Please enter your name:',
ui.ButtonSet.OK_CANCEL);
// Process the user's response.
var button = result.getSelectedButton();
var text = result.getResponseText();
if (button == ui.Button.OK) {
// User clicked "OK".
ui.alert('Your name is ' + text + '.');
} else if (button == ui.Button.CANCEL) {
// User clicked "Cancel".
ui.alert('I didn\'t get your name.');
} else if (button == ui.Button.CLOSE) {
// User clicked X in the title bar.
ui.alert('You closed the dialog.');
}
}
的返回值,然后调用PromptResponse.getResponseText()
以检索用户的输入,并将PromptResponse.getSelectedButton()
的返回值与Ui.Button
进行比较enum。
以下是示例代码:
{{1}}
答案 1 :(得分:-1)
可以做的一件事是,您可以通过time trigger每分钟调用以下内容,以查看用户所在的工作表:
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var sheetName = sheet.getName()
如果用户在不同的工作表中,您可以验证工作表。