Google电子表格脚本 - 如何测试单元格是否粗体

我需要测试给定的电子表格单元格是否使用粗体字体。这是我的脚本代码。Google电子表格脚本 - 如何测试单元格是否粗体

function ifBold(cell, val1, val2) { 

if(cell.getFontWeight() == 'bold')

return val1;

return val2;

}

它错误,告诉我'单元'没有函数getFontWeight()。我该如何做这项工作?

回答:

您必须将该单元格作为字符串传递。 ifBold(“A1”,1,0)

function ifBold(a1Notation, val1, val2) { 

var cell = SpreadsheetApp.getActiveSpreadsheet().getRange(a1Notation);

if(cell.getFontWeight() == 'bold')

return val1;

return val2;

}

如果在细胞或范围通过而不发送作为一个字符串,那么将被接收为一个字符串或阵列,分别。它将无法作为Range对象进行处理。有关更多信息,请参见以下链接:
http://code.google.com/p/google-apps-script-issues/issues/detail?id=354
How do I pass a cell argument from a spreadsheet to a custum function as a range?

编辑:
要写入的方式,是动态的功能,它需要使用内置函数行和列。
= ifBold(ROW(A1),COLUMN(A1),1,0)

function ifBold(row, column, val1, val2) { 

var range = SpreadsheetApp.getActiveSpreadsheet().getDataRange().getCell(row, column);

if(range.getFontWeight() == 'bold')

return val1;

return val2;

}

回答:

getFontWeight()是范围的函数,所以只要你正在传递给你的函数上面是Range对象(sheet.getRange(...)),它应该工作:

https://developers.google.com/apps-script/reference/spreadsheet/range

这是一个脚本,它会为您在每一个元素是否是大胆与否:

function ifBold() { 

var sheet = SpreadsheetApp.getActive().getSheetByName('Bold');

var cells = sheet.getRange('A2:A');

for (var i=1; i <= cells.getNumRows(); i++) {

var isBold = false;

if(cells.getCell(i, 1).getFontWeight() == 'bold')

isBold = true;

sheet.getRange(i+1, 2).setValue(isBold);

}

}

见例如:

https://docs.google.com/spreadsheet/ccc?key=0AmR0r1Y14zgydG03QS1Dd0dLRDA3SWgtLXp6TzV3d3c#gid=3

以上是 Google电子表格脚本 - 如何测试单元格是否粗体 的全部内容, 来源链接: utcz.com/qa/264685.html

回到顶部