如标题所述。
我正在处理电子表格,对其进行优化以便收集(或者更确切地说是索引集合)。
电子表格如下所示:https://docs.google.com/spreadsheets/d/1SyKB6YSEHVXIl-aYAEXxtcJ3Spm92XPPsHHhRprEurM/edit#gid=0
我需要的是一段自动设置"拥有的"框是“是”或“否”,具体取决于是否有任何一个单元格,在“标题:”下出现的所有" -box,出现在:或季节集合中:包含粗体文本。 (通过这种方式,您可以找到您购买并加粗的收藏品。是的,我知道我可以手动输入“是”和“不”。但我想尝试寻找解决方案在代码中虽然我对这个主题几乎一无所知,但它还是一个挑战。
我一直是googlin'寻求解决方案。在这个网站上找到了一些promesing东西。但是,我无法让他们运行代码行。
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);
}
}
说什么&#39;?帮助一个无能为力的新手?
我猜上面的代码只适用于数字?
这个可能更有用。但仍然无法让它发挥作用。
function ifBold(rangeSpecification) {
var sheet = SpreadsheetApp.getActive().getSheetByName('Bold');
var cells = sheet.getRange('rangeSpecification');
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);
}
}
答案 0 :(得分:1)
=ifBold(A1:C1)
将不起作用,因为它将值作为数组而不是范围表示法。
您需要将其更改为=ifBold("A1:C1")
才能生效。
另外,我有一些编辑可以让你的工作更好:
function ifBold(rangeSpecification) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange(rangeSpecification);
var weights = range.getFontWeights();
for (var i in weights[0]) {
var isBold = false;
if(weights[0][i].toString() == "bold"){
isBold = true;
return isBold;
}
}
return isBold;
}