簡體   English   中英

在腳本中使用Google表格公式

[英]Use Google Sheet Formula in Script

每次將新條目添加到我的Google工作表之后,我需要讓腳本驗證單元格的組合,然后確保驗證的輸出已更改,然后再發送電子郵件。 我知道如何使用電子表格中的公式進行驗證並提供正確的輸出,並且我知道如何讓腳本檢查該字段並運行。 當有人從用戶界面編輯工作表時,此方法有效。 問題在於電子表格沒有通過UI更新(通過IFTTT配方完成),因此我認為腳本運行之前不會重新計算驗證字段,這意味着沒有發送電子郵件。

通過UI更新以下公式和腳本時,它們可以完美地工作。 我的問題是-有沒有一種方法可以通過以下腳本使用電子表格中的公式來計算“值”變量?

工作表“狀態”的單元格“ D2”中的公式:

= IF((COUNTIF(INDEX(data!A1:D5032,(SUMPRODUCT(MAX((data!A:A =“ meloc”)**(ROW(data!A:A)))))))4)“ 輸入 “)+ COUNTIF(INDEX(data!A1:D5032,(SUMPRODUCT(MAX((data!A:A =” youloc“)**(ROW(data!A:A)))))),4),” 輸入 “ ))> 0,9999999999999,1111111111111)

通過UI編輯工作表時,腳本可以與onEdit觸發器配合使用:

function myNotification() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var value = ss.getSheetByName("state").getRange("D2").getValue();
  if( value > 0 ) {
    var last = ScriptProperties.getProperty("last");
    value = value.toString();
    if( value != last ) {
      MailApp.sendEmail('trigger@recipe.ifttt.com', 'Status #'+value+'\n\n',
                        '1="not here", 9="here": '+value+'\n\n', {
                        cc: 'myemail@gmail.com'
                        });
      ScriptProperties.setProperty("last", value);
    }
  }
}

您發現的內容無法正常使用。 當前,當外部代碼使用電子表格或驅動器api更改內容時,不會觸發這些觸發器。

如果您需要它實時工作,則不可能。 否則,如果您可以延遲1分鍾生存,則可以使用1分鍾循環觸發器來檢查電子表格上的最后修改日期是否已更改(通過與以前存儲在腳本屬性中的日期進行比較)。

如果更改,請再次處理整個工作表。

暫無
暫無

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

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