Google apps script 更改气体中的边框颜色(以及*不*更改某些颜色)

Google apps script 更改气体中的边框颜色(以及*不*更改某些颜色),google-apps-script,colors,google-sheets,border,google-docs,Google Apps Script,Colors,Google Sheets,Border,Google Docs,使用Google Apps脚本跟进此问题: 格式的顺序如下:。顺序(顶部、左侧、底部、右侧、垂直、水平、颜色、样式) 根据文档, “true”打开格式 “false”关闭格式 “null”保持不变 我的问题:“空”是关闭格式 我有一个非常简单的脚本用于测试: var right = "red"; var left = "blue"; range.setBorder( null, null, null, true, null, null, right, null ); range.se

使用Google Apps脚本跟进此问题:

格式的顺序如下:。顺序(顶部、左侧、底部、右侧、垂直、水平、颜色、样式)

根据文档,
“true”打开格式
“false”关闭格式
“null”保持不变

我的问题:“空”是关闭格式

我有一个非常简单的脚本用于测试:

var right = "red";  
var left = "blue";  
range.setBorder( null, null, null, true, null, null, right, null );  
range.setBorder( null, true, null, null, null, null, left, null );  
这不应该将右边框设置为红色,左边框设置为蓝色吗?
结果只有蓝色。如果我省略蓝线,它将导致红色。
似乎在单个单元格中获得2+颜色的唯一方法是使用“null”单独进行排序。但是“null”将用作“false”并关闭上一个边框。

SpreadsheetApp.flush()应该可以解决这个问题:

range.setBorder( null, null, null, true, null, null, right, null );
SpreadsheetApp.flush();
range.setBorder( null, true, null, null, null, null, left, null );  

我只是用上面的答案来重新表述这个问题,因为下面的脚本对第一次提问的人来说更有意义:

var rightBorderOn = true;
var leftBorderOn =true;

var rightBorderColor = "red";  
var leftBorderColor = "blue";
  
range.setBorder( null, null, null, rightBorderOn, null, null, rightBorderColor, null );  
SpreadsheetApp.flush();
range.setBorder( null, leftBorderOn, null, null, null, null, leftBorderColor, null );
  
希望这对你有所帮助