簡體   English   中英

未使用 Google 應用程序腳本打開 Google Sheet 時如何更新來自另一個源的導入范圍數據

[英]How to Update Import Range data from another Source when Google Sheet is not open using Google app script

我在 Google Sheet 中有一個可安裝的時間驅動觸發器,間隔為 30 分鍾。 如果有任何掛起的任務,觸發器將發送警報。 當 Google Sheet 打開時,觸發器工作正常。 但問題是當 Google Sheet 沒有打開時,觸發器正在獲取舊數據,這會導致錯誤警報。 待處理的任務數據是使用另一個工作表中的 IMPORTRANGE 函數計算的。 另一個工作表與 Google 表單鏈接,其中工作表根據用戶的輸出獲取更新。

因此,如果有人可以幫助應用腳本代碼刷新工作表事件的所有數據,則工作表不會打開,然后觸發器將完成工作。

注意:源文件和目標文件設置為在更改時和每分鍾自動更新。 我已將此發布到 Google App Script Bug Report Tracker,他們建議在此處尋求幫助。 您可以使用以下鏈接進行檢查: https : //issuetracker.google.com/issues/168644365

我的代碼:

  function AutoTelegramReminder() {
 
  var SpreadsheetId = 'My_SpreadSheetId';
  var SheetName = 'Pending Details';
  var ss = SpreadsheetApp.openById(SpreadsheetId)
  var sheet = ss.getSheetByName(SheetName);
 
  //Select the column we will check for the first blank cell
  var columnToCheck = sheet.getRange("D:D").getValues();
 
  // Get the last row based on the data range of a single column.
  var lastRow = getLastRowSpecial(columnToCheck);
 
  if (lastRow>1){
 
  var SlipNo = sheet.getRange(2, 4, lastRow-1).getValues();
  //getRange(row, column, numRows)
 

 //Send alert to Telegram
  var botSecret = "My_Bot_Secret"; //KCSL BOT ID
  var chatId = "My_Chat_Id"; //M.B.D Group ID
  var Url = "https://api.telegram.org/bot";
  var Link = "My_Google_Sheet_Link_For_Users";
  var whatsapLink = "My_Whatsapp_Link";

 
  var body = "MY_TEXT" + SlipNo + "MY_TEXT " + whatsapLink + "MY_TEXT";
 
  var response = UrlFetchApp.fetch( Url + botSecret + "/sendMessage?text=" + encodeURIComponent(body) + "&chat_id=" + chatId + "&parse_mode=HTML&disable_web_page_preview=TRUE");

                }

}


//Function To Get Last Row

function getLastRowSpecial(range){
  var rowNum = 0;
  var blank = false;
  for(var row = 0; row < range.length; row++){

    if(range[row][0] === "" && !blank){
      rowNum = row;
      blank = true;
    }else if(range[row][0] !== ""){
      blank = false;
    };
  };
  return rowNum;
};

如果您想刷新數據,則代替=importrange嘗試使用腳本通過使用SpreadsheetApp.openById('Sheet Id')來調用工作表,然后使用getRange().getValues()獲取范圍。

暫無
暫無

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

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