Google apps script 使用脚本编辑器将条件格式应用于多列
我正在创建一个onEdit(e)函数,根据A列的值更新图表格式。我已经设置了一个列,以使用条件格式和数据验证下拉菜单进行适当的格式设置,但是如何使与更新单元格相邻的其他列具有相同的格式 见下面的代码:Google apps script 使用脚本编辑器将条件格式应用于多列,google-apps-script,google-sheets,google-sheets-api,spreadsheet,Google Apps Script,Google Sheets,Google Sheets Api,Spreadsheet,我正在创建一个onEdit(e)函数,根据A列的值更新图表格式。我已经设置了一个列,以使用条件格式和数据验证下拉菜单进行适当的格式设置,但是如何使与更新单元格相邻的其他列具有相同的格式 见下面的代码: function onEdit(e) { // Get current active sheet var actSh = SpreadsheetApp.getActiveSpreadsheet(); // Get the integer value of the location th
function onEdit(e) {
// Get current active sheet
var actSh = SpreadsheetApp.getActiveSpreadsheet();
// Get the integer value of the location the change is made at
var row = e.range.getRow();
var col = e.range.getColumn();
// Define the max range in columns
var max = actSh.getLastColumn();
// Set a range to apply the conditional rule to
var range = actSh.getRange(row,(col+1),1,(max-1));
if (col == 1) {
// Get Rule for Column A
var rule = e.newConditionalFormatRules().copy();
var newRule = range.setConditionalFormatRules(rule);
}
}
下面是一个电子表格的截图,我正试图让编辑工作,以参考什么我正试图完成。
如何在新范围内扩展条件格式
步骤如下:
- 检索感兴趣的工作表
- 使用
getConditionalFormatRules()
- 循环浏览所有规则
- 使用
getRanges()
- 循环遍历这些范围,以验证您感兴趣的列是否是其中一个范围
- 如果发现规则应用于您感兴趣的列(
)-使用If(ranges[j].getColumn()==1)
copy()
- 使用
将感兴趣的范围分配给新复制的规则,并使用setRanges([range])
build
- 使用
push()
- 退出所有循环后,使用
setConditionalFormatRules(rules)
function onEdit(e) {
// Get current active sheet
var actSh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// Get the integer value of the location the change is made at
var row = e.range.getRow();
var col = e.range.getColumn();
// Define the max range in columns
var max = actSh.getLastColumn();
// Set a range to apply the conditional rule to
var range = actSh.getRange(row,(col+1),1,(max-1));
if (col == 1) {
var rules = actSh.getConditionalFormatRules();
for (var i = 0; i < rules.length; i++){
var ranges = rules[i].getRanges();
for (var j = 0; j < ranges.length; j++){
if (ranges[j].getColumn() == 1){
var rule = rules[i].copy();
rule.setRanges([range]).build();
rules.push(rule);
break;
}
}
}
actSh.setConditionalFormatRules(rules);
}
}
函数onEdit(e){
//获取当前活动工作表
var actSh=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//获取进行更改的位置的整数值
var row=e.range.getRow();
var col=e.range.getColumn();
//定义列中的最大范围
var max=actSh.getLastColumn();
//设置要应用条件规则的范围
变量范围=实际范围(行,(列+1),1,(最大值-1));
如果(列==1){
var rules=actSh.getConditionalFormatures();
对于(var i=0;i
参考资料
- 检索感兴趣的工作表
- 使用
getConditionalFormatRules()
- 循环浏览所有规则
- 使用
getRanges()
- 循环遍历这些范围,以验证您感兴趣的列是否是其中一个范围
- 如果发现规则应用于您感兴趣的列(
)-使用If(ranges[j].getColumn()==1)
copy()
- 使用
将感兴趣的范围分配给新复制的规则,并使用setRanges([range])
build
- 使用
push()
- 退出所有循环后,使用
setConditionalFormatRules(rules)
function onEdit(e) {
// Get current active sheet
var actSh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// Get the integer value of the location the change is made at
var row = e.range.getRow();
var col = e.range.getColumn();
// Define the max range in columns
var max = actSh.getLastColumn();
// Set a range to apply the conditional rule to
var range = actSh.getRange(row,(col+1),1,(max-1));
if (col == 1) {
var rules = actSh.getConditionalFormatRules();
for (var i = 0; i < rules.length; i++){
var ranges = rules[i].getRanges();
for (var j = 0; j < ranges.length; j++){
if (ranges[j].getColumn() == 1){
var rule = rules[i].copy();
rule.setRanges([range]).build();
rules.push(rule);
break;
}
}
}
actSh.setConditionalFormatRules(rules);
}
}
函数onEdit(e){
//获取当前活动工作表
var actSh=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//获取进行更改的位置的整数值
var row=e.range.getRow();
var col=e.range.getColumn();
//定义列中的最大范围
var max=actSh.getLastColumn();
//设置要应用条件规则的范围
变量范围=实际范围(行,(列+1),1,(最大值-1));
如果(列==1){
var rules=actSh.getConditionalFormatures();
对于(var i=0;i
参考资料
。你是说同一行中的所有单元格吗?是的,我就是这个意思。定义相邻的。你是说同一行中的所有单元格吗?是的,这就是我的意思。