我正在尝试构建一个Google电子表格脚本来跟踪一系列单元格中的更改,如c10:y100
,如果这些单元格中的任何一个已更改且用户试图离开该页面,我就会这样做。 d喜欢有一个确认对话框说"你需要更新这个文件的修订号"。
我已经查看了各种方法,但是找不到核心功能,如果用户试图离开页面而没有手动更改修订号,我可以触发此功能在那个范围内。
我会怎么做?
答案 0 :(得分:1)
使用Google Apps脚本,没有关于用户在客户端用户界面中的行为方式的一般反馈 - 例如,我们无法判断他们是否关闭了浏览器标签页或浏览器。没有它,你的目标就无法完全实现。
您可以通过将How to poll a Google Doc from an add-on中描述的技术应用于电子表格并应用其他一些技巧来实现目标......
您可以获取有关电子表格内容的信息"活动":
onEdit()
功能可以记录您感兴趣的范围的手动编辑。当相关编辑时,它还可以 打开侧边栏 制作!您可以让侧边栏的内容鼓励甚至促进生成新版本号,例如通过提供完成任务的按钮。
// onEdit function that opens sidebar if a particular cell is edited.
function onEdit(e) {
if (e.range.getSheet().getName() === "Sheet1"
&& e.range.getA1Notation() === "A1") {
// Edit was performed in our target range
// First, make a note of the change.
// Then open our tracking sidebar
var html = HtmlService.createHtmlOutput('<H2>Up-Revision required</H2>')
.setTitle('Tracking sidebar')
.setWidth(300);
var ui = SpreadsheetApp.getUi();
ui.showSidebar(html);
}
// Ignore all other edits
}
执行:您可以使用任何Web应用程序阻止用户起身和离开(或关闭窗口)。不过,你仍然希望尽力帮助他们做正确的事。
如前所述,通过帮助用户设置新的修订号,让您的用户轻松上手。
如果您的侧边栏轮询器在用户更改了标签时记录了触发条件(在C10:Y100
中编辑而没有升级版本),那么它可以打开模式对话框来强制执行向上版本控制。 / p>
如果您以非易失的方式注意到未修订的更改(比如使用文档属性),那么您可以使用onOpen()
触发器功能执行测试并打开侧边栏和/或模态对话框。