google-apps-script - 使用脚本的条件格式 - 基于自定义公式突出显示行
问题描述
我有一个使用滚动日历跟踪出勤情况的 Google 表格。它有多个工作表,我希望每个工作表都具有相同的条件格式。最初这似乎很容易,我写了一些脚本,让它遍历所有工作表,以将一个单元格中的格式复制到整个工作表。它运行良好,直到它以某种方式删除了除一种之外的所有条件格式,=A$1=TODAY()
. 我一直在试图确定它为什么这样做以及如何解决它。我尝试在非移动单元格 (A1) 中设置条件格式,但随后公式无法正常工作。他们最终突出显示了错误的行。我也一直在查看 Google Sheets API Sheets,但在实现它时遇到了麻烦。有没有办法可以编写脚本来设置这些条件格式规则以及如何设置?任何帮助表示赞赏。
我已经提供了我正在尝试完成的工作以及我一直在使用的脚本和参考的图片,所有这些都在下面。
工作表的基本布局如图所示。图片还描绘了我试图用条件格式完成的事情。
格式规则如下(并按此顺序):
适用范围:A1:NH(整张纸)
自定义公式为:=A$1=TODAY()
背景颜色:默认绿色背景 (#b7e1cd)适用范围:C2:NH(除第 1 行和 A & B 列外的所有内容)
自定义公式为:=$B2>=10
背景颜色:深红色 1 (#cc0000)适用范围:C2:NH
自定义公式为:=$B2>=8
背景颜色:浅红色 2 (#ea9999)适用范围:C2:NH
自定义公式为:=$B2>=5
背景颜色:浅橙色 1 (#f6b26b)适用范围:C2:NH
自定义公式为:=$B2>=2
背景颜色:浅黄色 2 (#ffe599)
B 列中的公式是 =SUM($C2:2) 自动填充到每一行。
我当前的脚本是
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheets();
var sheetNames = [ 'Screening','Maint - PrePress','Vulcan','Sullivan','Packing','Materials','Shipping','Labels','Embroidery','PadPrint','Quality'];
sh.forEach(sheet=> {
if(sheetNames.includes(sheet.getName())) {
var rng = sheet.getRange('F2');
rng.copyFormatToRange(sheet, 3, sheet.getLastColumn(), 2, sheet.getLastRow());
}
});
}
参考:
解决方案
试试这个代码,它可以工作:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheets();
// The sheet from which we take a sample of the rules
var sheetS = ss.getSheetByName('Screening');
var rng = sheetS.getRange('F2');
var sheetNames = ['Screening','Maint - PrePress','Vulcan','Sullivan','Packing','Materials','Shipping','Labels','Embroidery','PadPrint','Quality'];
sh.forEach(sheet=> {
if(sheetNames.includes(sheet.getName())) {
rng.copyFormatToRange(sheet, 3, sheet.getLastColumn(), 2, sheet.getLastRow());
}
});
}
推荐阅读
- javascript - 单击概览按钮时在 Android 上隐藏浏览器页面内容
- java - 匹配字符串 ArrayList 中的模式
- javascript - _idi_的MongoDB E11000重复键错误
- c++ - 为什么我的类变量在方法之间改变它的值?
- magento2 - Magento2 备份已禁用
- java - 旋转时java歪斜的形状
- jquery - jQuery 区分 click() 和 dblclick()
- python - Python:如果键存在于while循环中,则添加到现有字典值?
- python - 在 macos 上使用 OpenGL 和 python 时出错
- jenkins - 如何为詹金斯设置 Maven 设置