首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选中“自动输入行”复选框

选中“自动输入行”复选框
EN

Stack Overflow用户
提问于 2022-11-30 04:56:13
回答 1查看 51关注 0票数 1

我正在做一个项目,在这个项目中,当选中一行的复选框时,我尝试在特定行上有值,以便自动输入到不同的单元格中。

我尝试了很多不同的方法,在网上问了很多问题,但仍然无法达到我的目标。

请看下面的图片。

项目页面图像

这样做可以做到以下几点:

当在单元格C7中键入名称时,该特定名称下的所有信息都将出现在B20:F中。当信息被过滤时,复选框将出现在A20:A中,仅显示在B20:F中存在数据的行中。

出现复选框的代码是由在堆栈溢出中很棒的人给出的,如下所示:(谢谢!)

代码语言:javascript
复制
function onEdit(e) {
    const sheet = SpreadsheetApp.getActiveSheet();
    const sName = sheet.getName();
    if (sName === "sheet1") {
        const len = sheet.getRange('B20:B').getValues().filter(row => row[0] != '').length;

        // Condition-2: edit range === C7;
        if (e.range.getColumn() === 3 && e.range.getRow() === 7) {
            const range = sheet.getRange(20,1,len,1);
            sheet.getRange('A20:A').removeCheckboxes();
            range.insertCheckboxes().uncheck();
        }

        // Condition-3: column of edit range === A, row of edit range > 19, value === true;
        if (e.range.getRow() > 19 && e.range.getColumn() === 1 && e.range.getValues()[0][0] === true) {
            sheet.getRange('A20:A').uncheck();
            e.range.check();
        }
    }
}

因此,这样做了,我现在正试图实现两件事。

编号1:删除A20中的复选框:a当C7中键入的名称被删除时。

2:当选中A20:A中的复选框时,将该行中的数据自动输入到C9、C11和C13

我只熟悉python,它看起来就像是绑定到代码,这种语言就像python一样,每次都给我不成功的结果。有人愿意帮我吗?

如果试试看电子表格确实有帮助,请尝试访问https://docs.google.com/spreadsheets/d/14ZzzPUc4TRNVFB0fjfPfIJWWwvLGIuagT2u8Gwjmt9E/edit#gid=0

我迫切需要一个代码大师的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-30 12:42:44

您的onEdit函数有点混乱。您不能同时在一个函数中执行和定义多个函数。在您的示例中,您可以直接定义onEdit函数中的步骤(就像我所做的那样),或者将这两个函数移到外部,定义它们并在onEdit中触发它们。总之,我认为这应该能解决你的问题:

代码语言:javascript
复制
function onEdit(e) {
  const sheet = e.range.getSheet();
  const sName = sheet.getName();
  if (sName === "Teacher's Input Form") {
    const len = sheet.getRange('B20:B').getValues().filter(row => row[0] != '').length;
    if (e.value != null && e.range.getColumn() === 3 && e.range.getRow() === 7) {
      const range = sheet.getRange(20, 1, len, 1);
      range.insertCheckboxes().uncheck();
    }
    if (e.value == null && e.range.getColumn() === 3 && e.range.getRow() === 7) {
      sheet.getRange('A20:A').removeCheckboxes();
    }
    if (e.range.columnStart == 1 && e.range.rowStart > 19 && e.value == "TRUE") {
      sheet.getRange('A20:A').uncheck();
      e.range.check();
      const dataRow = e.range.rowStart;
      const rowData = sheet.getRange(dataRow, 1, 1, 6).getValues();
      const mappedData = [[rowData[0][2]],[''],[rowData[0][3]],[''],[rowData[0][4]]];
      sheet.getRange("C9:C13").setValues(mappedData);
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74623057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档