我有一个类似于下面的Google表,日期在合并后的单元格中的第一列中,跨越几行。当第一列中的日期等于运行脚本的日期时,我正在尝试创建一个脚本,该脚本将自动为行(或文本)着色。在示例屏幕截图中,当日期为10月1日时,第11-15行应着色。因为脚本也是在前一天运行的,所以第6-10行现在已经被着色了。使用条件格式可能是可能的,但我也希望将其他函数应用到这些单元格(比如从编辑中锁定它们),因此我需要在脚本中这样做。
我发现了几个类似的问题,比如这一个,但是我无法将其中的任何问题改编成我的电子表格。也许合并的细胞造成了问题?

发布于 2020-09-30 15:33:28
解释:
Sheet1列A中每个合并范围的第一个单元格的日期值。解决方案:
function myFunction() {
const today = (new Date()).toLocaleString("sv-SE").slice(0,10);
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sh = ss.getSheetByName("Sheet1");
const range = sh.getRange("A1:A"+sh.getLastRow());
const mergedRanges = range.getMergedRanges();
mergedRanges.forEach(mR=>
{
temp_vals = mR.getValues().flat();
cell_date = (new Date(temp_vals[0]).toLocaleString("sv-SE").slice(0,10));
if(today === cell_date) {
sh.getRange(mR.getRow(),mR.getColumn(),mR.getHeight(),6).setBackground('#FF8C00');
}
else{
sh.getRange(mR.getRow(),mR.getColumn(),mR.getHeight(),6).setBackground('#ffffff');
}
});
}参考文献:
https://stackoverflow.com/questions/64140155
复制相似问题