Google apps script 当用户在工作表之间切换时触发

Google apps script 当用户在工作表之间切换时触发,google-apps-script,google-sheets,triggers,Google Apps Script,Google Sheets,Triggers,当用户在GoogleSheets电子表格中的工作表之间切换时,是否有办法运行脚本 或多或少类似于onOpen,但不是在打开文档时运行,而是在用户每次切换到另一个工作表时启动它。更新:在Google上添加了可用于检查用户是否在工作表和选项卡之间切换的更新 此时,没有与将一张图纸切换到另一张图纸相关的触发器。要了解Google应用程序脚本中可用的触发器,请签出 作为一种解决方法,您可以使用脚本(而不是使用选项卡)创建自定义菜单和SpreadsheetApp.setActivesheet,以便在工作表

当用户在GoogleSheets电子表格中的工作表之间切换时,是否有办法运行脚本

或多或少类似于onOpen,但不是在打开文档时运行,而是在用户每次切换到另一个工作表时启动它。

更新:在Google上添加了可用于检查用户是否在工作表和选项卡之间切换的更新

此时,没有与将一张图纸切换到另一张图纸相关的触发器。要了解Google应用程序脚本中可用的触发器,请签出

作为一种解决方法,您可以使用脚本(而不是使用选项卡)创建自定义菜单和SpreadsheetApp.setActivesheet,以便在工作表之间切换,并在该脚本中包含对从一张工作表切换到另一张工作表时要运行的函数的调用。

更新:在Google上添加了该功能,可用于检查用户是否在工作表之间切换标签

此时,没有与将一张图纸切换到另一张图纸相关的触发器。要了解Google应用程序脚本中可用的触发器,请签出

作为一种解决方法,您可以使用一个脚本(而不是使用制表符)创建一个自定义菜单和SpreadsheetApp.setActivesheet,以便在工作表之间切换,并在该脚本中包含对从一个工作表切换到另一个工作表时要运行的函数的调用。

我创建了一个功能请求,以在google issue tracker上实现onSheetChange触发器。你可以成为明星,所以谷歌现在你想要这个:

这里有一个与可能的解决方法相关的问题:

我已经创建了一个功能请求,以在google issue tracker上实现onSheetChange触发器。你可以成为明星,所以谷歌现在你想要这个:

这里有一个相关的问题和可能的解决方法:

您可以使用

sheet1.showSheet();
sheet2.hideSheet();
你可以用

sheet1.showSheet();
sheet2.hideSheet();

以下是我在onSheetChange方面的工作:

function saveActiveSheet() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var actsheet = ss.getActiveSheet();
    // The onSelectionChange() function executes in a separate thread
    // which does not use any script global variables, so use the
    // PropertiesService to maintain the user global state.
    var userProperties = PropertiesService.getUserProperties();
    userProperties.setProperty('ACTIVE_SHEET', actsheet.getSheetName());
}

function onSheetChange(e) {
    // Do anything needed after a new sheet/tab selection

}

function onSelectionChange(e) {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    // Get current sheet name and compare to previously saved sheet
    var currentactsheet = ss.getActiveSheet();
    var currentactsheetname = currentactsheet.getSheetName();
    var userProperties = PropertiesService.getUserProperties();
    var actsheetname = userProperties.getProperty('ACTIVE_SHEET');
  
    if (currentactsheetname !== actsheetname) { // New sheet selected
        saveActiveSheet();
        onSheetChange(e);   // Call custom sheet change trigger
    }
    // Do anything needed when a different range is selected on the same sheet
    else {
        var range = e.range;

    }
}

function onOpen(e) {
    saveActiveSheet();
}

以下是我在onSheetChange方面的工作:

function saveActiveSheet() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var actsheet = ss.getActiveSheet();
    // The onSelectionChange() function executes in a separate thread
    // which does not use any script global variables, so use the
    // PropertiesService to maintain the user global state.
    var userProperties = PropertiesService.getUserProperties();
    userProperties.setProperty('ACTIVE_SHEET', actsheet.getSheetName());
}

function onSheetChange(e) {
    // Do anything needed after a new sheet/tab selection

}

function onSelectionChange(e) {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    // Get current sheet name and compare to previously saved sheet
    var currentactsheet = ss.getActiveSheet();
    var currentactsheetname = currentactsheet.getSheetName();
    var userProperties = PropertiesService.getUserProperties();
    var actsheetname = userProperties.getProperty('ACTIVE_SHEET');
  
    if (currentactsheetname !== actsheetname) { // New sheet selected
        saveActiveSheet();
        onSheetChange(e);   // Call custom sheet change trigger
    }
    // Do anything needed when a different range is selected on the same sheet
    else {
        var range = e.range;

    }
}

function onOpen(e) {
    saveActiveSheet();
}

相关的:相关的:我想他问的是事件,不是功能。我想他问的是事件,不是功能。被引用的帖子被删除了。被引用的帖子被删除了。