onSelectionChange 在更改选项卡时重新触发自身

2023-12-15

几天来我一直在尝试让一个简单的函数正常工作,但我不知道哪里出了问题。如果可以提供一些帮助,我真的很感激。

背景: 我有一个日历选项卡,其中包含侧面的“商店”和顶部的“日期”表格。

当用户在 E7:AI200 之间单击时,我希望能够:

  • 从第 1 列和单击的行中获取商店名称,并使用该值填充 B1。
  • 从第 1 行和单击的列中获取日期,并使用该值填充 C1。

这似乎工作正常。

我还希望当单击 E7:AI200 之间的单元格时,电子表格自动导航到另一个名为“过滤事件”的选项卡。

这似乎也运作良好。

Issue:当我单击返回“日历”选项卡时,它似乎重新单击原始单元格并将我直接导航回“过滤的事件”选项卡,每次我尝试返回时,我都会陷入在选项卡之间不断切换的循环中日历。

function onSelectionChange(e) {

  var ss = SpreadsheetApp.getActive();
  if (ss.getActiveSheet().getName() == "Calendar") {
    var sheet = ss.getSheetByName("Calendar");
    
    var full_range = sheet.getRange("A1:AI200");
    var click_range = e.range;

    var row_lookup = click_range.getRow();
    var col_lookup = click_range.getColumn();

    var selected_store = full_range.getCell(row_lookup, 1).getValue();
    var selected_date = full_range.getCell(1, col_lookup).getValue();

    var populate_store = sheet.getRange("B1"); 
    var populate_date = sheet.getRange("C1");

    if (row_lookup > 6 && row_lookup < 250 && col_lookup < 36 && col_lookup > 4) { 

      populate_store.setValue(selected_store);
      populate_date.setValue(selected_date);

      var change_sheet = ss.getSheetByName("Filtered Events");
      change_sheet.activate();
    } 

    else {
      populate_store.setValue('');
      populate_date.setValue('');
    } 
  }
} 

也许你可以使用属性服务存储所选单元格最后使用的坐标并在脚本开始时检查它们:

function onSelectionChange(e) {

  var ss = SpreadsheetApp.getActive();
  if (ss.getActiveSheet().getName() == "Calendar") {
    var sheet = ss.getSheetByName("Calendar");
    
    var full_range = sheet.getRange("A1:AI200");
    var click_range = e.range;

    var row_lookup = click_range.getRow();
    var col_lookup = click_range.getColumn();

    // try to get the last used cell coordinates
    var last_cell_row = PropertiesService.getScriptProperties().getProperty('last_cell_row');
    var last_cell_col = PropertiesService.getScriptProperties().getProperty('last_cell_col');

    // save current cell coordinates
    PropertiesService.getScriptProperties().setProperty('last_cell_row', row_lookup);
    PropertiesService.getScriptProperties().setProperty('last_cell_col', col_lookup);

    // if the coordinates are the same break the function
    if (row_lookup == last_cell_row && col_lookup == last_cell_col) return;

    // the rest of your code ...

我还没有测试过。如果您提供一些用于测试的虚拟数据(您的工作表的外观),那就更好了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

onSelectionChange 在更改选项卡时重新触发自身 的相关文章

  • 有没有办法将 Google 文档分割成多个 PDF?

    我想在 Google Scripts VBA 代码中复制我为 Word 文档编写的代码 基本上 它通过搜索我插入文档中的标签 将文档 切片 为多个 PDF 文件 目的是允许合唱团使用 forScore 管理乐谱的应用程序 在切片点插入先前注
  • 移动设备:缺少操作

    我正在尝试执行该操作的 POST 但是 当我发出请求时 我收到代码 400 表示操作值丢失 my code function mobileAPIPOST var response UrlFetchApp fetch https www go
  • 在 Oracle 中使用触发器记录对表的更改

    我的一门课有一个项目 当我们的两个表发生更改时 我们需要创建一个日志 插入 更新 删除 我们需要使用Oracle触发器和PL SQL 在日志文件中 我们需要记录用户ID 日期时间 IP地址和事件 插入 更新 删除 我知道如何设置触发器 但我
  • 更新plpgsql中触发器函数中的多列

    给出以下架构 create table account type a id SERIAL UNIQUE PRIMARY KEY some column VARCHAR create table account type b id SERIA
  • 阻止用户在共享的 Google 电子表格中创建新工作表

    我创建了一个电子表格 其中除单个单元格之外的所有工作表都受到保护 无法编辑 用户应该在其中输入搜索值 该搜索值会过滤工作表 我共享了启用编辑功能的电子表格 以实现这一点 但这也使用户能够创建新工作表 这是我想阻止的 也许我没有使用最佳的方式
  • Google Sheets 导出为 Excel 值而不是公式

    我有一个谷歌工作表 其中第一个选项卡中的单元格从第二个选项卡上的单元格中提取数据 例如 Sheet1 单元格 A1 有 Sheet2 A1 对于 Sheet1 上的每个单元格都是如此 当我创建文件时 下载为 Microsoft Excel
  • 如何使用 Google Apps 脚本添加指向电子表格单元格的链接

    可以通过用户界面向 Google 电子表格中的单元格添加 链接 我想使用 Google Apps 脚本执行相同的操作 我本以为 Range 类上有一种方法可以实现这一点 但看不到 有谁知道如何做到这一点 截至 2020 年 6 月 可以选择
  • 在 Google 网站中嵌入 Google 电子表格时,Google Apps 脚本可帮助解决错误?

    电子表格 A 是欢迎新移民来到我们小镇的团队的主数据源 它里面有大量非常敏感的数据 不能公开 哪怕是一点点 我们谈论的是孩子的姓名和出生日期以及他们上学的地方 保证电子表格 A 的安全是至关重要的任务 因此 电子表格 B 使用 import
  • firebase云功能事务偶尔工作

    我有这样的云功能 exports updateNewsCount functions database ref channels channelId news newsId onWrite event gt const channelId
  • 使用 MySQL 触发器将所有表更改记录到辅助表

    我有一张桌子 CREATE TABLE data table data id INT NOT NULL AUTO INCREMENT PRIMARY KEY field1 INT NOT NULL field2 INT NOT NULL f
  • OptimisticConcurrencyException - SQL 2008 R2 而不是使用实体框架插入触发器

    使用 SQL 2008 R2 11 月版本数据库和 net 4 0 Beta 2 Azure 辅助角色应用程序 辅助角色收集数据并将其插入到具有一个标识列的单个 SQL 表中 由于可能会运行此辅助角色的多个实例 因此我在 SQL 表上创建了
  • mysql错误1442的真正原因是什么?

    好吧 我在互联网上寻找了很多地方来寻找原因mysql error 1442其中说 无法更新存储函数 触发器中的表 unlucky table 因为 它已被调用此存储的语句使用 功能 触发器 有人说这是 mysql 中的一个错误或者它不提供的
  • 用于向日历活动提交表单的 Google 脚本

    学校老师使用我的个人 Google 帐户创建表单并将日历发布到我的班级网站 努力让孩子 无法访问 Google Apps 尽可能快速 轻松地安排补考使用这种形式 https docs google com forms d 1 TvsZ3Wl
  • 如何在表单提交时运行 Appscript?

    我正在尝试创建当用户完成表单提交时重定向到网络应用程序的 Google 表单 我查过谷歌开发者文档 https developers google com apps script guides triggers 但我看不到一种简单的方法来做
  • 用于提交、评分和发回 Google 课堂作业的 Google Apps 脚本

    正如下面的评论中提到的 如果只有学生可以交一些东西 那么我就需要能够评分并返回作业 即使它还没有上交 澄清一下 作业是通过 API 完成的 我可以控制班级和学生 正如下面的附加评论中提到的 即使您不返回作业 学生仍然会看到分配的成绩 这实现
  • 生成多列范围的所有唯一值的列表,并根据这些值在最后 X 列中出现的次数对这些值进行评级

    正如标题所说 我有一个这样的范围 A B C duck fish dog rat duck cat dog bear bear 我想要的是获取范围内所有唯一值的单列列表 并根据它们在最后 X 列中出现的次数为它们分配评级 或等级 更多列不断
  • Google Apps 脚本自动生成的库文档

    我目前正在开发一个 Google Apps 脚本库 它基本上将电子表格视为数据库对象 目前 该库有两个相同的功能 例如 Opens and creates a query object for a spreadsheet with the
  • 通过脚本删除工作表

    我正在执行此代码 function deleteSheets var ss SpreadsheetApp getActiveSpreadsheet var sheets ss getSheets var transp ss getSheet
  • 我的触发器是如何被删除的?

    如果你能弄清楚这一点 那么你就是一位真正的 SQL 大师 这是我见过的最奇怪的事情之一 我已向数据库中的表添加了一个触发器 服务器是 SQL 2008 触发器不会做任何特别棘手的事情 当某些字段发生更改时 只需更改表中的 LastUpdat
  • 根据条件格式化货币

    Google Apps 脚本新手 但有一些 VBA 编码经验 我希望能够根据不同的单元格输入决定单元格的数字格式 eg Col A 客户名称 验证范围 B 栏 货币类型 英镑 美元 欧元 经过验证的列表 Col C 费用 100 用户免费类

随机推荐

  • ASP.NET:为什么无法禁用控件状态

    我知道 ASP NET 不允许禁用控件状态 有谁知道吗why 我用谷歌搜索了很多 但只看到这是不可能的 但找不到 为什么 任何对此的想法都将受到欢迎 附 在我的特定情况下 我需要将很多项目放入下拉列表中 这些项目不会用于服务器端事件 我需要
  • 我被刮伤了,我该如何防止这种情况发生?

    运行 IIS 7 每周几次 我会看到来自一个地理位置的 Google Analytics 上的大量点击 他们正在查看的网址序列显然是由某种算法生成的 所以我知道我正在被抓取内容 有什么办法可以防止这种情况发生吗 谷歌不只给我一个IP 这让我
  • Android 多列列表视图

    我正在为我的应用程序创建一个排行榜 高分列表 我想以 4 列显示数据 排名 名称 创建者 得分 并通过对象列表相应地填充它们 我想在列表中一次显示 5 个项目 总共 20 个项目 使列表可滚动 我找不到合适的方法来做到这一点 由于我的工作截
  • 填充内联元素的顶部和底部

    引用 Head First html 您可以在内联元素的顶部和底部添加内边距 但内边距不会影响其周围其他内联元素的间距 因此内边距会与其他内联元素重叠 a 据我理解上面的引用 向内联元素的顶部和底部添加填充不会 永远 对周围的元素产生任何影
  • 是否可以修复完整内存转储,以便不再需要运行 .imgscan /l ?

    由于某种原因 我已经开始接收来自需要运行的生产的转储 imgscan l first 现在 我倾向于使用从 powershell 脚本调用的 CDB 对转储运行小型查询 然而 运行 imgscan l每次都需要相当长的时间 是否可以以渲染的
  • 当我使用 Nightmare 时,在页面之间移动并进行抓取

    有一个网站 其中包含一个包含 25 个条目列表的页面 其中每个条目都是指向包含我需要的一些信息的页面的链接 我想进入列表页面 然后 1 点击第一个条目的链接 2 检索所有html 3 点击返回列表页面 有一个按钮 4 对所有其他列表重复此操
  • 在 libav 中读取 dumepd RTP 流

    嗨 我需要一些帮助 指导 因为我陷入了我的研究之中 问题 如何在 API 通过编程 或控制台版本中使用 gstreamer 或 avlib ffmpeg 转换 RTP 数据 Data 我有来自 TCP 上的 RTP RTCP 的 RTP 转
  • WPF 动画仅触发一次

    我有一个小椭圆 每次依赖属性设置为 true 时我都希望它闪烁 因为该属性可以在几毫秒内很快从 true 变回 false 所以我需要使用动画而不是简单样式的数据触发器来完成此操作 基本上 我只想要真正的值来 ping 椭圆上的动画
  • fwrite 内部是否调用任何锁?

    在Solaris 中 当我将dbx 连接到正在运行的堆栈之一时 我发现对fwrite 的调用导致了 lll lock wait 什么情况下会发生这种情况 fwrite 是否在内部尝试获取锁 我查看的标准 C99 和 POSIX 没有提及有关
  • 如何在詹金斯中添加管理构建?

    我试图弄清楚如何向 Jenkins 添加管理构建来管理一些构建 以及如何将参数从管理构建传递到子构建 参数化触发器插件这就是您正在寻找的 安装插件后 请参阅下面的第二个快照 去Configure您的项目的页面 搜索Build gt Add
  • 从日期数组中查找缺失的日子 javascript

    我从 API 获取了一系列日期 0 date 2016 11 17T00 00 00 1 date 2016 11 18T00 00 00 2 date 2016 11 19T00 00 00 3 date 2016 11 21T00 00
  • 如何强制 CKEditor 保留
    标签

    我正在使用最新版本的 CKEditor 迄今为止为 4 7 和标准包 并且我希望能够强制它保留换行符元素 br 我尝试使用以下配置 但没有成功 CKEDITOR replace ck allowedContent true enterMod
  • 如何在 Flutter 的 pubspec.yaml 中以正确的方式设置依赖项

    以下是 Flutter 项目中 pubspec yaml 文件中的一些依赖项示例 dependencies flutter sdk flutter cloud firestore 0 14 4 firebase core web 0 2 1
  • Sublime Text 2 控制台和 python 3

    I am able to set python3 2 for the build command in sublime text 2 and build with python3 2 but when invoking the consol
  • 使用 nodeJS 和 Gulp 任务运行器自动缩小

    我需要一些建议来改进 node 和 gulp 的自动缩小 主要目标是在开发模式下动态生成缩小文件 JS 和 LESS 并在生产模式下自动将普通文件 js 和 less 更改为缩小文件 该场景包含 NodeJS 和 ExpressJS 用于路
  • 用颜色绘制 PCA 分数

    我正在做 PCA 我想在 R 中绘制第一个主成分与第二个主成分的关系 pca lt princomp data data na action na omit plot pca scores 1 pca scores 2 或者可能是几个主要组
  • 异步和异步方法澄清?

    AFAIK 我读了很多相关内容 异步方法 not异步委托 Task
  • Go 中的“未知转义序列”错误

    我用 Go 编写了以下函数 这个想法是函数有一个字符串传递给它并返回找到的第一个 IPv4 IP 地址 如果未找到 IP 地址 则返回空字符串 func parseIp checkIpBody string string reg err r
  • 我可以在 OS X 上安装 Python 2.7.1 64 位和现有的 32 位安装吗?

    简短的介绍是否可以安装Python 2 7 1 64 32位python org在 Python 2 7 1 32 位的现有安装 来自 python org 之上 背景我安装了 wxPython 2 8 支持的 32 位版本 到目前为止 它
  • onSelectionChange 在更改选项卡时重新触发自身

    几天来我一直在尝试让一个简单的函数正常工作 但我不知道哪里出了问题 如果可以提供一些帮助 我真的很感激 背景 我有一个日历选项卡 其中包含侧面的 商店 和顶部的 日期 表格 当用户在 E7 AI200 之间单击时 我希望能够 从第 1 列和