用于查找粗体文本并返回是或否的公式

时间:2014-06-04 09:41:48

标签: google-sheets

如标题所述。

我正在处理电子表格,对其进行优化以便收集(或者更确切地说是索引集合)。

电子表格如下所示: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);
  }
}

1 个答案:

答案 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;
}