【发布时间】:2021-03-12 23:59:22
【问题描述】:
【问题讨论】:
标签: google-apps-script google-sheets insert
【问题讨论】:
标签: google-apps-script google-sheets insert
我相信你的目标如下。
您想插入一个新行并使用 Google Apps 脚本将标题行放在插入的行中。
在您的问题中,您希望在“F”列的值发生更改时插入新行。但是当我看到您的示例图片时,该列是“H”而不是“F”。
剧本很完美。你能像示例一样修改文本颜色为红色,填充颜色为黄色吗?
在使用此脚本之前,请设置工作表名称。并且,在此示例脚本中,检查了“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
});
}
【讨论】: