只有一个 TRUE 复选框

2023-12-14

我有一列复选框:

My column .

如果选中一个框,它将为另一个工作表中的单元格设置一个值。

如果我选中 1 号框,它就会变为 true,而其余的仍然为 false 然后,如果我选中 2 号框,它也会随着 1 号框而变为 true,而其余的仍然为 false。这是正常操作,但我需要的是,当我选中一个框时,它会变为 true,而所有其他框都会变为 false,无论它们是否被选中。换句话说,我希望一次选中一个框。

我可以这样做吗?

这是我的代码,用于在选中该框时设置一个值:

var hasValue = sheet.getRange("B2:B").getValues();
for (var i = 0; i < hasValue.length; i++) {
    if (hasValue[i][0] == true) {
        var transfer = sheet2.getRange(2, 2, 1, 1).setValue(i + 1);
    }
}

这种行为称为“单选按钮”。

实现它的最简单方法是绑定简单的编辑触发器:

  1. 检查编辑的范围以确定它是否位于您的复选框区域,如果不是则退出。
  2. 将所有复选框设置为 false
  3. 将编辑的单元格设置为事件对象中的适当值
  4. 如果需要,执行更新

您必须配置的极其简单的示例,并且仅配置用于单单元格编辑。

function onEdit(e) {
  if (!e || e.value === undefined)
    return; // The function was run from the Script Editor, or a multi-cell range was edited.
  const edited = e.range;
  const s = edited.getSheet();
  if (s.getName() !== "some name")
    return; // A cell on the wrong sheet was edited
  if (isCheckboxRow_(edited.getRow()) && isCheckboxCol_(edited.getColumn())) {
    // The cell edited was in a row and a column that contains a checkbox
    updateCheckboxes_(s, edited, e);
  }
}

function isCheckboxRow_(row) {
  // Assumes checkboxes are only in rows 5, 6, 7, 8, 9, and 10
  return row >= 5 && row <= 10;
}
function isCheckboxCol_(col) {
  // Assumes checkboxes are in column A
  return col === 1; 
}
function updateCheckboxes_(sheet, editRange, eventObject) {
  if (!sheet || !edit || !eventObject)
    return; // Make sure all required arguments are defined (i.e. this was called and not run from the Script Editor)
  const cbRange = sheet.getRange("A5:A10"); // location of the checkboxes in a radio group.
  cbRange.setValue(false);
  editRange.setValue(eventObject.value);
  // Reference some other sheet
  const targetSheet = eventObject.source.getSheetByName("some other sheet name")
  if (!targetSheet)
    return; // the sheet name didn't exist in the workbook we edited.
  // Reference a cell in the same row as the cell we edited, in column 1
  const targetCell = targetSheet.getRange(editRange.getRow(), 1);
  if (eventObject.value) {
    // when true, give the target cell the value of the cell next to the edited checkbox
    targetCell.setValue(editRange.offset(0, 1).getValue());
    // do other stuff that should be done when a checkbox is made true
  } else {
    // the checkbox was toggled to false, so clear the target cell
    targetCell.clear();
    // do other stuff that should be done when a checkbox is made false
  }
}

上面暗示了一些建议的做法,例如使用辅助函数来封装和抽象逻辑,从而使函数更容易理解。

Review:

  • 简单的触发器
  • 事件对象
  • 电子表格服务
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

只有一个 TRUE 复选框 的相关文章

  • Google 脚本过滤一个值的范围

    我想过滤第 1 列中仅包含 Bob 特定值的行的 google 工作表范围 到目前为止 我的代码允许我过滤out第 1 列中有 Bob 的行 我需要相反 我想返回第 1 列中只有 Bob 的行 因此 其中 filterSettings 不是
  • 如何在谷歌表格查询中转义双引号和单引号?

    我在谷歌表格单元格中有这个查询 QUERY Sheet1 A2 F SELECT WHERE A te xt text 0 我可以像这样转义双引号 text text 但是我怎样才能逃脱双引号和单引号呢 te xt text 一种可能的替代
  • 用于向日历活动提交表单的 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 列中出现的次数为它们分配评级 或等级 更多列不断
  • 正则表达式 - 使用正则表达式提取电子邮件文档的子字符串

    我正在尝试使用正则表达式提取电子邮件文档的子字符串 我正在在线测试正则表达式 它运行得很好 在线正则表达式测试器 https regex101 com r BbWBPk 1 我有一个功能可以检查 Google Apps 脚本上的正则表达式
  • 根据条件格式化货币

    Google Apps 脚本新手 但有一些 VBA 编码经验 我希望能够根据不同的单元格输入决定单元格的数字格式 eg Col A 客户名称 验证范围 B 栏 货币类型 英镑 美元 欧元 经过验证的列表 Col C 费用 100 用户免费类
  • 下订单时如何在 Magento 中触发电子邮件?

    我需要以下问题的解决方案 1 客户下订单 2 店主收到没有价格信息的电子邮件 例如装箱单 我需要编辑哪些文件 我读过很多帖子 但他们似乎没有提到文件路径 Thx 实现这一目标的两种可能方法 您可以为该类创建模型重写Mage Sales Mo
  • 无法在 onclick 函数中传递多个参数

    我正在尝试创建一个上传机制 其中我可以使用 HTML 中的文件 ID 将文件上传到 google 驱动器中 我不想将文件夹的 ID 放在上传函数中 因为这是需要的 我试图通过声明另一个参数 即函数 upload e id 来传递函数 upl
  • 电子表格的 Google 脚本(If 语句)

    我希望有人能帮助我解决这个问题 我是编码新手 我有一个谷歌电子表格 其中有一个可以推送电子邮件的脚本 我试图让脚本忽略脚本已发送电子邮件的行 function onOpen var ui SpreadsheetApp getUi Or Do
  • 清除内容并从另一张纸复制

    我编写了一个脚本 旨在清除 Google Sheets 电子表格的内容并复制并粘贴另一个工作表的内容 需要清除的工作表称为 NEW SHEET 要复制的工作表称为 Database 由于某种原因 该脚本目前无法运行 当我运行它时什么也没有发
  • 在应用程序脚本中将 .XLS 转换为 Google 表格的最有效方法是什么?

    我每周都会自动将 XLS 文件下载到 Google 云端硬盘 我想每周自动将最新下载的 XLS 文件转换为 Google 表格格式 因此转到特定的 Google 驱动器文件夹 查找最新或未转换的 XLS 文件 转换为 Google 表格格式
  • 如何处理 SQLite 缺少的功能:禁用触发器?

    如何处理 SQLite 缺失的功能 disable triggers 我没有让它存储特定表的触发器名称 例如 我如何删除所有触发器 你会怎么办 现在已经是 2015 年了 SQLite 中仍然没有 禁用触发器 对于移动应用程序来说 这可能会
  • 解析 Google 表格中制表符分隔的文本文件

    我在网上有一个 txt 文件 其中包含制表符分隔值 TSV CSV 如下所示 产品IDtabColortabPricetabQuantity项目1tabRed tab 5 2 tab5项目2tabBlue tab 7 5 tab10 我使用
  • 列出文件夹中的所有文件,包括子文件夹中的文件

    我正在尝试创建一个 Google Apps 脚本 该脚本将允许用户获取文件夹内的所有文件 包括连接到主文件夹的子文件夹内的文件 请注意 在我的代码中 我是提供folderid的人 这将是主文件夹 我已设法从文件夹中获取所有文件 但我还希望提
  • Google App脚本:无法保留前导零,因为它被自动删除

    我是谷歌脚本的新手 我有一个像下面这样的场景 我有 Sheet1 其中包含 A 列和 B 列 通常我尝试将十进制值存储到其中 我的意思是A列中的整数部分和B列中的小数部分 例如 场景一 如果值为 23 75 则 Column A 应为 23
  • 仅生成一张电子表格的 PDF

    我需要一个只用一张电子表格创建 PDF 的脚本 我目前有一个生成 PDF 的脚本 但它处理整个文件 我无法将这些值复制到另一个文件 因为我需要导出的工作表是带有从另一个工作表中提取的数据的图形 你可以帮帮我吗 谢谢 function myF
  • 如何过滤视图两列 OR 而不是 AND?

    在 Google 表格中 我想过滤查看结果 以便仅显示 D 列和 或 E 列中带有 x 的行 如果我过滤以显示其中包含 x 的列 则它将仅显示 D 列和 E 列中包含 x 的行 我如何让它做 和 或 操作 当我单击列中的过滤器按钮时 它只会
  • Firebase GAS webapp Google 弹出窗口消失

    我正在尝试升级我的 firebase GAS web 应用程序 之前我有一个弹出窗口 可以让用户使用 Google 登录 我不确定我做错了什么 但我已经升级到新的 firebase 现在正在尝试使用新的代码格式进行相同的登录 发生的情况是

随机推荐

  • 如何从scrapy调用输出文件名

    scrapy crawl test o test123 csv 如何从代码中调用输出文件名 即我想使用在终端中输入的文件名spider closed功能 classmethod def from crawler cls crawler ar
  • 将产品标题移至 Woocommerce 存档页面上的产品图片上方

    我正在尝试将产品标题移至产品存档页面上的产品图像上方 我已经设法弄清楚如何移动信息 但价格也在图像上方移动 我只希望产品标题位于产品图片上方 价格应保持在较低水平 并带有 添加到购物车 按钮等 这是我的代码片段和迄今为止的结果屏幕截图 re
  • 奇怪/深奥的连接语法

    我已经获得了这个旧的 SQL 代码 表名已更改 来复制 并且 JOIN 语法不是我以前见过的东西 而且很难用 google 搜索到 select
  • 联邦学习:将自己的图像数据集转换为tff模拟Clientdata

    这是我的联邦学习测试的代码 from future import absolute import division print function import os import collections import warnings fr
  • 为什么 C++ 函数中默认参数要放在最后?

    为什么 C 函数中默认参数要放在最后 简化语言定义并保持代码可读性 void foo int x 2 int y 要调用它并利用默认值 您需要如下语法 foo 3 这可能是觉得太奇怪了 另一种选择是在参数列表中指定名称 foo y 3 必须
  • NSGenericException:此编码器要求从 initWithCoder 返回替换的对象

    昨天我的 iPhone 应用程序运行得很好 今天我遇到了这个崩溃 Terminating app due to uncaught exception NSGenericException reason This coder requires
  • 使用 Webinator+Selenium、SpecFlow 和 NUnit 进行多浏览器测试

    我正在使用 Selenium 驱动程序使用 WebinatorSpecFlow NUnit 开发 ASP NET MVC 3 应用程序 我在使用 Chrome 使用 chromedriver 和 Internet Explorer 运行并行
  • JavaScript:需要函数将包含二进制的字符串转换为十六进制,然后转换回二进制

    假设我有一个 JavaScript 字符串 其中包含二进制数据 它可能看起来像这样 var binary 00001000010001000101010100001110 我需要一些可靠的函数将其转换为十六进制字符串 然后再次从该十六进制转
  • javaws 退出代码真的被破坏了吗?

    我正在努力使用 JNLP 自动执行相同的 java 代码 我惊讶地发现 jamaws 没有给我一个有效的返回代码 原来的执行行是 javaws wait http example com 666 missing jnlp 这确实显示了一个丑
  • Angular 2 Http.get 没有响应

    我正在使用 Http get 检索配置文件 我已经成功做过很多次了 但这次却一无所获 我在控制台中没有看到跟踪 也没有看到错误 即使我使用的是 catch 我这里可能有什么问题 this http get assets dashboard
  • 如何使用 python selenium 在 React-Select Component 下拉列表中选择值?

    selenium 和 HTML 非常新 我想从网站中选择一个下拉列表 这type被隐藏 我只想通过或选择其中之一male or female从下拉列表中或将其传递到value变量 我该怎么做 我使用 Chrome 中的检查元素来确定下面的两
  • 角度单选按钮:选中

    在简单的 html 和 css 中 我可以执行以下操作 input checked label background color f00 div class col xs 6 div
  • NSNumber 与 NSArray 的原始 int

    我正在使用 Mac OSX 版 Cocoa 编程 第四版来学习 Objective C Cocoa 我对这个基本问题表示歉意 但我是那些真正需要了解一切事物内部结构才能对我有意义的人之一 而这本书并不总是能满足我的需求 我已经学习了 C 的
  • 对视图的显示进行动画处理

    我在视图上添加了一个按钮 视图与按钮大小相同 单击该按钮时 必须显示一个新视图 因此 在按钮的事件处理程序中 我将 newview 添加为添加按钮的视图的子视图 以便在单击按钮时显示 newview 我需要做的事情是 当我单击按钮时 必须从
  • Git:合并错误,然后恢复合并。现在无法再次合并分支

    我在 git 方面遇到了一点麻烦 这就是我所做的 我将最新的 master 合并到我的分支并推送它 后来意识到这个合并已损坏并恢复了合并 现在我正在尝试再次合并master 它说它是最新的 我能知道如何强制将 master 的所有更改合并到
  • AtomicInteger 的 getAndIncrement 实现

    AtomicInteger 的 getAndIncrement 实现执行以下操作 public final int getAndIncrement for int current get Step 1 get returns the vol
  • 保存 UITextField 测试的最佳方法:textFieldShouldReturn 或 textFieldDidEndEditing

    我的目标只是在用户单击键盘上的完成按钮后将文本保存在 UITextField 上 我可以在 extFieldShouldReturn 或 textFieldDidEndEditing 中执行此操作 有什么区别吗 还是有更好的方法 Thank
  • USB 调制解调器回显错误的字符

    我在 ttyACM0 端口上连接了 USB 调制解调器 当我打开 Minicom 之类的应用程序并尝试向其发送一些命令时 回显并不总是我输入的内容 例如 如果我输入 A 则会得到 如果我输入 T 我就会得到 T 串行端口似乎正在剥离我的传输
  • 如何使用 VBA 将图像嵌入到 Outlook 电子邮件中

    非常密切相关在outlook邮件正文中嵌入图片excel vba 我正在尝试将图像嵌入到 Outlook 电子邮件中 我正在使用以下代码片段 其中一半是从上面的帖子中窃取的 Sub PictureEmail Dim outApp As Ne
  • 只有一个 TRUE 复选框

    我有一列复选框 如果选中一个框 它将为另一个工作表中的单元格设置一个值 如果我选中 1 号框 它就会变为 true 而其余的仍然为 false 然后 如果我选中 2 号框 它也会随着 1 号框而变为 true 而其余的仍然为 false 这