簡體   English   中英

谷歌應用程序腳本非常非常慢

[英]google apps script very very slow

我正在使用google電子表格作為成員的簡單數據庫,並且我想創建一個用於搜索成員的用戶界面(主要用戶在技術上不是很熟練,並且與每個成員相關的數據分配都非常多,因此,電子表格可能有點乏味)

我已經寫了下面的腳本,該腳本昨晚有效,但運行速度非常慢,今天超時,我也不知道為什么。

function findMember() {
  // set spreadsheet variable
  var SS = SpreadsheetApp.getActiveSpreadsheet();

  // set sheet variables
  var memberSearchSheet = SS.getActiveSheet();
  var memberDataSheet = SS.getSheetByName("Member Data");

  // get the search variables
  var searchFirstName = memberSearchSheet.getRange('C2').getValue();
  var searchLastName = memberSearchSheet.getRange('C3').getValue();

  // get last row of data
  var lastRow = memberDataSheet.getLastRow();
  for (var i = 2;lastRow;i=i+1){
    if (searchFirstName == memberDataSheet.getRange('R'+i+'C2').getValue() && searchLastName == memberDataSheet.getRange('R'+i+'C3').getValue()){
      memberSearchSheet.getRange('C5').setValue(memberDataSheet.getRange('R'+i+'C5').getValue());
      //throw new Error("ouch")
    }
  }

  // small pop up notification in bottom right corner .toast(message, title, display time)
  //var message = "Your search for " + searchFirstName + " " + searchLastName + " is complete.";
  //SS.toast(message,"Search Complete",15);

};

您可能可以一步一步地嘗試獲取數組中的所有數據,然后快速將您的值與數組中的值進行比較。 像這樣:

  var sheet = SpreadsheetApp.getActive().getSheetByName("Member Data");
  var data = sheet.getDataRange().getValues();
  for (var i = 1; i < data.length; i++) {
    if (data[i][0] == firstName && data[i][1] == secondName) {
      throw("Found");
    }
  }

暫無
暫無

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

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