Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 通过Google应用程序脚本跟踪Google电子表格中的更改_Google Apps Script_Google Sheets_Google Drive Api - Fatal编程技术网

Google apps script 通过Google应用程序脚本跟踪Google电子表格中的更改

Google apps script 通过Google应用程序脚本跟踪Google电子表格中的更改,google-apps-script,google-sheets,google-drive-api,Google Apps Script,Google Sheets,Google Drive Api,我正在尝试构建一个谷歌电子表格脚本来跟踪一系列单元格的变化,比如说c10:y100,如果这些单元格中的任何一个发生了变化,并且用户试图离开页面,我希望有一个确认对话框说“您需要更新此文档的修订号” 我已经研究了各种方法,但找不到核心功能,如果用户在该范围内进行更改后试图离开页面,而不手动更改修订号,则可以触发此操作 你知道我该怎么做吗?使用Google Apps脚本,没有关于用户在客户端UI中行为的一般反馈-例如,我们无法判断他们是否关闭了浏览器选项卡或浏览器。没有这些,你的目标就无法完全实现

我正在尝试构建一个谷歌电子表格脚本来跟踪一系列单元格的变化,比如说
c10:y100
,如果这些单元格中的任何一个发生了变化,并且用户试图离开页面,我希望有一个确认对话框说“您需要更新此文档的修订号”

我已经研究了各种方法,但找不到核心功能,如果用户在该范围内进行更改后试图离开页面,而不手动更改修订号,则可以触发此操作


你知道我该怎么做吗?

使用Google Apps脚本,没有关于用户在客户端UI中行为的一般反馈-例如,我们无法判断他们是否关闭了浏览器选项卡或浏览器。没有这些,你的目标就无法完全实现

您可以通过将中描述的技术应用到您的电子表格中,并应用一些其他技巧来实现这一目标

您可以获得有关哪些电子表格内容处于“活动”状态的信息:

  • 电子表格。getActiveSheet()将告诉您活动的“选项卡”
  • Sheet.getActiveCell()和Sheet.getActiveRange()可以告诉您用户在活动工作表上的位置。(对本案兴趣不大,但仍值得一提。)
onEdit()
函数可以记录对感兴趣范围的手动编辑。当进行相关编辑时,它还可以打开侧边栏!您可以让侧边栏的内容鼓励甚至促进新修订号的生成,例如通过提供一个按钮来完成任务

//编辑特定单元格时打开侧栏的OneEdit函数。
功能OneEdit(e){
如果(例如range.getSheet().getName()=“Sheet1”
&&e.range.geta1符号(){
//编辑是在我们的目标范围内执行的
//首先,记下变化。
//然后打开我们的跟踪边栏
var html=HtmlService.createHtmlOutput('Up-Revision required')
.setTitle(“跟踪侧栏”)
.设置宽度(300);
var ui=SpreadsheetApp.getUi();
显示侧边栏(html);
}
//忽略所有其他编辑
}
强制执行:对于任何web应用程序,都无法阻止用户起身走开(或关闭窗口)。尽管如此,你还是要尽力帮助他们做正确的事情

  • 如前所述,通过帮助用户设置新的修订号,让您的用户更轻松

  • 如果您的边栏轮询器在用户更改选项卡时注意到触发条件(在
    C10:Y100
    中编辑而不进行版本升级),那么它可以打开一个模式对话框来强制执行版本升级

  • 如果您以非易失性的方式(比如使用文档属性)注意到未修改的更改,那么您可以使用
    onOpen()
    trigger函数执行测试并打开侧栏和/或模式对话框


朋友早上好,您的解决方案我尝试使用您的解决方案,而不是侧边栏,只是从菜单运行或运行函数,但在onEdit事件中不起作用。自编写此答案以来,Google可能已经更改了
onEdit()中可能的操作范围。如果你自己无法解决这个问题,你应该发布一个新的问题——参考这个问题的上下文,以帮助潜在的回答者。