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