簡體   English   中英

在Google表格中使用fontcolor()返回單元格中的HTML

[英]Using fontcolor() in Google Sheets Returns HTML in Cell

在我的工作表中,我想自動取負數,將顏色更改為紅色,並刪除“-”字符。 單元格中的數字可以根據其他單元格中的數據在正負之間波動,例如...

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中的值在其他地方使用,則需要將其視為負數(刪除“-”僅用於顯示)。

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

您只能從自定義腳本函數返回值。 為了更改單元格的顏色,您可以嘗試添加觸發器 (例如onEdit ,然后將setFontColor應用於單元格。

是的,有一種方法可以在AppsScript中執行此操作以用於顯示。 您可以更改數字格式的顯示方式,而無需更改單元格的值。 將正數設置為顯示為黑色,將負數設置為顯示為紅色,而不顯示負(-)符號。 例如,要更改僅列10的顯示,請執行以下操作:

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

您還可以通過以下方式更新單元格/列/工作表的數字格式:選擇要在工作表本身中更改視圖的列,單擊格式->數字->更多格式->自定義格式->並輸入[黑色]#,## 0; [紅色]#,## 0; 進入自定義區域。

通過使用onEdit您不僅可以操作值,還可以操作單元格。

這樣的事情,除非您想進一步限制它。

/** @OnlyCurrentDoc */
function onEdit(e) {
  var range = e.range;
  if (e.value < 0) {
        range.setValue(e.value * -1);
        range.setFontColor('red');
  }
}

onEdit()局限性 ,如果單元格值在外部發生更改(例如通過腳本執行onEdit() ,則可能不會觸發。

對於這種情況,可以考慮安裝一個time-driven trigger ,如果需要,它可以每分鍾運行一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM