我需要测试给定的电子表格单元格是否为粗体字。这是我的脚本代码。
function ifBold(cell, val1, val2) {
if(cell.getFontWeight() == 'bold')
return val1;
return val2;
}
它报错,告诉我“cell”没有getFontWeight()函数。我该怎么做才能让它工作?
我需要测试给定的电子表格单元格是否为粗体字。这是我的脚本代码。
function ifBold(cell, val1, val2) {
if(cell.getFontWeight() == 'bold')
return val1;
return val2;
}
你需要将单元格以字符串形式传递。ifBold(“A1”,1,0)
function ifBold(a1Notation, val1, val2) {
var cell = SpreadsheetApp.getActiveSpreadsheet().getRange(a1Notation);
if(cell.getFontWeight() == 'bold')
return val1;
return val2;
}
编辑:
为了以动态方式编写此函数,需要使用内置函数ROW和COLUMN。
=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 的一个函数,只要你在上面传递给函数的是一个 Range 对象(sheet.getRange(...)),它就应该可以工作:
https://developers.google.com/apps-script/reference/spreadsheet/range
这是一个通用脚本,将检查A中的每个元素是否为粗体:
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
这很不错,但是由于单元格地址被放在引号注释中,所以无法将函数向下拖到不同的单元格。
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);
}
}
为了能够将函数从一个单元格拖动到下一个单元格,您需要使用以下代码: 如果您想将其用于一个单元格:
=ifBold(CELL("address"; A1)) 或者 =ifBold(CELL("address", A1))
;或逗号“,”可能因您的语言区域而异。
新版Google Sheets: =myFunction(CELL("address",A1)&":"&CELL("address",A2)) 或 旧版Google Sheets: =myFunction(ADDRESS(row(A1),COLUMN(A1),4)&":"&ADDRESS(row(A2),COLUMN(A2),4))
您可能需要再次更改“,”为“;”,如下所示:
=myFunction(CELL("address";A1)&":"&CELL("address";A2))