在工作表中,我想自动取负数,将颜色更改为红色,并删除“-”字符。单元格中的数字可以根据其他单元格中的数据在正负之间波动,例如...

A1 = "some number"
A2 = "some number"
A3 = A1 + A2 (number should be red if value is a negative, and '-'
     should be stripped off. Otherwise number should be black.


我写了一个应该执行此操作的应用程序脚本

function negativesToRed(num) {
      if (num < 0) {
        var newNum = (num * -1).toString();
        var redNum = newNum.fontcolor("red");
      }
      return redNum;
    }


但是当我使用它时,它返回...

<font color="red">605</font>

...在牢房中

注意:当在A1或A2中输入的数据更改为负数时,A3需要变为红色。仅当用户手动将A3更改为负数时,onEdit()才起作用。 AND如果A3中的值在其他地方使用,则需要将其视为负数(删除“-”仅用于显示)。

反正有什么要使它起作用?

最佳答案

是的,有一种方法可以在AppsScript中执行此操作以用于显示。您可以更改数字格式的显示方式,而无需更改单元格的值。将正数设置为显示为黑色,将负数设置为显示为红色,而不显示负(-)符号。例如,要更改仅列10的显示,请执行以下操作:

var ss = SpreadsheetApp.openById('sheetIDhere').getSheetByName('sheetNameHere');
ss.getRange(2, 10,ss.getLastRow()-1, 1).setNumberFormat('[Black]#,##0;[Red]#,##0;');


您还可以通过以下方式更新单元格/列/工作表的数字格式:选择要在工作表本身中更改视图的列,单击格式->数字->更多格式->自定义格式->并输入[黑色]#,## 0; [红色]#,## 0;进入自定义区域。

关于javascript - 在Google表格中使用字体color()返回单元格中的HTML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57525261/

10-12 15:44