5th*_*4x4 3 google-sheets google-apps-script
如何根据onEdit()函数中单元格的内容更改单元格背景颜色?
我已经测试了很多版本的代码 - 有些代码工作得很好,有些代码根本没用.但我还没有按照我需要的方式让它工作.
请原谅我写的方式缺乏优雅,但实际上我需要保持代码尽可能简单,因为会有很多细胞变化,许多条件,以及许多不同数量的细胞将根据什么改变在工作表上更改.
好的,所以这里......
function onEdit(event)
{
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
var changedCell= event.source.getActiveRange().getA1Notation();
if (changedCell == 'B3') {
var c = ss.getRange("B3").getValue();
if (c < 2); {
ss.getRange("B3").setBackgroundColor('#ff0000');
ss.getRange("B12").setBackgroundColor('#ff0000');
}
if (c > 1); {
ss.getRange("B3").setBackgroundColor('#000000');
ss.getRange("B12").setBackgroundColor('#000000');
}
}
}
Run Code Online (Sandbox Code Playgroud)
有几点需要注意
1.方法的名称是setBackground和否setBackgroundColor
2.如何格式化单元格B3.仅当比较格式为整数时才进行比较.在大多数情况下,Google Spreadsheet会根据数据类型自动格式化单元格,但如果我正在编写代码,我会仔细检查.所以使用类似的东西
var c = parseInt(ss.getRange("B3").getValue()) ;
Run Code Online (Sandbox Code Playgroud)
3. if条件后不需要分号.这将立即终止if条件.所以使用
if (c < 2) {
Run Code Online (Sandbox Code Playgroud)
和
if (c > 1) {
Run Code Online (Sandbox Code Playgroud)
4.最后,我不知道数据是如何进入B3的,但是如果你在B3中有1.5,那么这两个if条件都会变为真,你的背景颜色会被覆盖.所以,我建议你使用if..elseif
为了更好的可读性,我会使用setBackground('red')和setBackground('white')常见的颜色.
| 归档时间: |
|
| 查看次数: |
16845 次 |
| 最近记录: |