簡體   English   中英

在 Google Apps 腳本中創建下拉菜單時出現錯誤:“sheet.indexOf 不是函數”

[英]Getting Error: “sheet.indexOf is not a function” when creating dropdown in Google Apps Script

我想在谷歌表格側邊欄中創建一個下拉列表,其中將包含名稱中不包含“查找”的所有表格的名稱。

我正在嘗試使用 scriptlet 過濾工作表名稱,這就是我在 Page.html 文件中得到的內容:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
  
    <!-- Select an exisiting data table -->
    Select sheet to classify: <br>
    <select id="dataSheetDropdown">
    <? var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets() ?>
    <? for(var i=0;i<sheets.length;i++) { ?>          
          <? sheet = sheets[i] ?>
          <? if(sheet.indexOf("Lookup")>-1){?>
          <option> <?= sheet.getName()?> </option>
          <? } ?>
    <? } ?>
    </select>
    <button onclick="selectLookup()">Select</button>
   
    
    
    <script> 
      function selectLookup(){
       var name=document.getElementsById("sheetDropdown")[0].value;
       google.script.run.goToSheet(name);
      };
    </script>
    
  </body>
</html>

當我嘗試運行此腳本時,我收到此錯誤:

TypeError: sheet.indexOf is not a function

知道如何讓我的腳本正確運行嗎? 您的幫助將不勝感激

我相信你的目標如下。

  • 您要檢索具有不包含Lookup的工作表名稱的工作表並將它們顯示到下拉列表中。

修改點:

  • 我認為您的問題的原因是該sheet是表 object。 這樣,這樣的錯誤發生在indexOf
  • 當您要檢索工作表名稱不包含Lookup的工作表時,請使用if(sheet.getSheetName().indexOf("Lookup") == -1){

當你的腳本被修改后,它變成如下。

修改后的腳本:

從:
 <? sheet = sheets[i]?> <? if(sheet.indexOf("Lookup")>-1){?> <option> <?= sheet.getName()?> </option> <? }?>
至:
 <? sheet = sheets[i]?> <? if(sheet.getSheetName().indexOf("Lookup") == -1){?> <option> <?= sheet.getSheetName()?> </option> <? }?>

參考:

暫無
暫無

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

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