【问题标题】:Google scripts if statement with conditional formatting on last row onlyGoogle 脚本 if 语句仅在最后一行具有条件格式
【发布时间】:2017-12-11 19:05:56
【问题描述】:

我正在尝试使用 Google 脚本将 Google 工作表中第二列的 仅最后一行中的单元格设置为绿色:

1. <0,和

2.不等于#N/A

部分首选方法

我有以下if 语句(不使用循环):

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
lastrow = sheet.getLastRow()
if (sheet.getRange(lastrow, 2, 1, 1) >0.00 && sheet.getRange(lastrow, 2, 1, 1) !='#N/A') {
  sheet.getRange(lastrow, 2, 1, 1).setFontColor('green');
}

但是,这不起作用。它只是没有将绿色分配给字体。

不是首选方法

我可以使用循环,基于answer,并一次循环遍历列中的所有行:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
lastrow = sheet.getLastRow()
var oValues = sheet.getRange(2, 2, lastrow, 1).getValues();

for (var i = 0; i < oValues.length; i++) {
  if (oValues[i] >0.00) {
   sheet.getRange(i, 2, 1, 1).setFontColor('green');
  }
}

但是,缺点是这种方法会格式化列中的所有行。我只需要格式化最后一行。

有没有办法避免遍历所有行,只检查最后一行是否满足上面的 1.2.

【问题讨论】:

    标签: if-statement google-apps-script google-sheets gs-conditional-formatting


    【解决方案1】:

    这个答案怎么样?

    修改点:

    • 在您的脚本中,sheet.getRange(lastrow, 2, 1, 1) &gt; 0.00sheet.getRange(lastrow, 2, 1, 1) !='#N/A' 表示与范围的比较。当你想比较一个单元格的值时,你可以使用sheet.getRange(lastrow, 2, 1, 1).getValue()
    • &lt;0不等于#N/A的条件可以写成if (value &lt; 0 &amp;&amp; value) {}
    • 第二列最后一行的单元格可以写成sheet.getRange(sheet.getLastRow(), 2)
      • 在您的情况下,您也可以使用sheet.getRange(sheet.getLastRow(), 2, 1, 1)

    上面反映的修改后的脚本如下。

    修改后的脚本:

    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
    var range = sheet.getRange(sheet.getLastRow(), 2); // Last row of 2nd column
    var value = range.getValue(); // Value of last row of 2nd column
    if (value < 0 && value) { // <0 and not equal to #N/A
      // range.setBackground("green"); // This line give the background color of cell.
      range.setFontColor("green"); // This line give the font color of cell.
    }
    

    如果我误解了你的问题,请告诉我。我要修改。

    【讨论】:

    • 谢谢!我完全错过了.getValue() 部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2019-04-29
    • 2013-12-11
    • 2022-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多