与 SpreadsheetApp.RangeList.setBorder 的方法签名不匹配

问题描述 投票:0回答:1

我正在 Google Sheet 上编写 Google Apps 脚本。我想在一个范围内设置边框。

这是我通过 Google Sheet 中的宏功能记录的简单代码。

/** @OnlyCurrentDoc */

function _1() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1:F10').activate();
  spreadsheet.getActiveRangeList().setBorder(true, true, true, true, true, true, '#000000', SpreadsheetApp.BorderStyle.SOLID);
};

当我运行它时,它会显示以下错误:

错误:参数(布尔值、布尔值、布尔值、布尔值、布尔值、布尔值、字符串、数字)与 SpreadsheetApp.RangeList.setBorder 的方法签名不匹配。

Error: The parameters (Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,String,number) don't match the method signature for SpreadsheetApp.RangeList.setBorder.

我在这里检查了文档:https://developers.google.com/apps-script/reference/spreadsheet/range-list#setbordertop,-left,-bottom,-right,-vertical,-horizontal,-color, -风格

我觉得应该是对的。我不知道为什么它不起作用。

google-apps-script
1个回答
0
投票

通过从 getActiveRangeList() 切换到 getRange() 来纠正 setBorder() 的使用

错误仍然存在,因为

setBorder()
方法需要一个字符串作为颜色参数,并且边框样式应该是
SpreadsheetApp.BorderStyle
类型的对象。但是,您仍然遇到问题,因为正确的方法适用于 Range 而不是 RangeList。

您应该使用返回单个 Range 对象的

getActiveRangeList()
,而不是使用在处理多个范围时使用的
getRange()
。 Range 对象支持具有适当参数的
setBorder()
方法。

function _1() {
  var spreadsheet = SpreadsheetApp.getActive();
  var range = spreadsheet.getRange('A1:F10');  
  range.setBorder(true, true, true, true, true, true, '#000000', SpreadsheetApp.BorderStyle.SOLID); 
};

通过使用

getRange()
而不是
getActiveRangeList()
,您正在使用单个范围,该范围与
setBorder()
的方法签名匹配。这应该可以解决该错误。

输出示例

Sample Output

参考

© www.soinside.com 2019 - 2024. All rights reserved.