【问题标题】:How to insert a row when cell value changes in a column当列中的单元格值更改时如何插入行
【发布时间】:2021-03-12 23:59:22
【问题描述】:

当单元格值与列H:H上方的单元格不同时,如何插入与第一行值相等的行

【问题讨论】:

    标签: google-apps-script google-sheets insert


    【解决方案1】:

    我相信你的目标如下。

    • 您想插入一个新行并使用 Google Apps 脚本将标题行放在插入的行中。

    • 在您的问题中,您希望在“F”列的值发生更改时插入新行。但是当我看到您的示例图片时,该列是“H”而不是“F”。

      • 很遗憾,我无法理解您的实际目标。所以在这个答案中,我想提出 2 种模式。
    • 来自your following replying

      剧本很完美。你能像示例一样修改文本颜色为红色,填充颜色为黄色吗?

      • 您想用红色字体颜色和黄色背景颜色放置值。

    示例脚本:

    在使用此脚本之前,请设置工作表名称。并且,在此示例脚本中,检查了“F”列的值。如果要查看“H”列的值,请将"F2:F"修改为"H2:H"

    function myFunction() {
      const sheetName = "Sheet1";  // Please set the sheetname.
      
      // 1. Retrieve values from the column "F".
      const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
      let [temp, ...values] = sheet.getRange("F2:F" + sheet.getLastRow()).getValues();
      
      // 2. Create an array including the row numbers for inserting new rows.
      const insertRows = values.reduce((ar, [v], i) => {
        if (v != temp) {
          ar.push(i + 3);
          temp = v;
        }
        return ar;
      }, []);
    
      // 3. Retrieve header row.
      const header = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
    
      // 4. Insert new rows and put the header row to the inserted row.
      insertRows.reverse().forEach(i => {
        sheet.insertRows(i);
        sheet.getRange(i, 1, 1, header[0].length).setValues(header).setBackground("yellow").setFontColor("red"); // Modified
      });
    }
    

    注意:

    • 此示例脚本用于您的问题和示例图像。因此,当您更改电子表格的结构时,可能无法使用该脚本。请注意这一点。

    参考:

    【讨论】:

    • 脚本很完美。你能像示例一样修改文本颜色为红色,填充颜色为黄色吗?
    • 欢迎@tt3。请记住,根据site guidelines,当答案解决您的问题时,accept 它甚至是upvote 它,这样其他人也可以从中受益。
    • @tt3 感谢您的回复。关于您回复的附加要求,我修改了示例脚本。你能确认一下吗?如果这不是您期望的方向,我深表歉意。
    • @Tanaike:脚本很完美,非常感谢您的帮助。
    • @tt3 感谢您的回复。我很高兴你的问题得到了解决。顺便问一下,your latest question 怎么样?我担心我是否能正确理解您的目标。
    猜你喜欢
    • 2020-01-30
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    相关资源
    最近更新 更多