【问题标题】:Google Sheets script: how do I run a script only on the sheets whose names contain particular text?Google 表格脚本:如何仅在名称包含特定文本的表格上运行脚本?
【发布时间】:2019-10-22 09:32:56
【问题描述】:

(在 Google 表格上) 我想创建一个仅在电子表格中的某些工作表上运行的脚本。为此,我创建了一个脚本,该脚本创建一个工作表名称数组,其名称(定义为变量 curSheetName)符合以下条件:

if(curSheetName == "CM:")

所以目前工作表名称必须等于“CM:”,但我希望它是这样,以便脚本在标题中包含文本“CM:”的所有工作表上运行,但我找不到如何编写从句法上讲。在 MySQL 中它是 '%CM:%',在 GSheet 公式中您只需使用星号..

这是我的代码:

// Get list of sheet names in an array format
function sheetnames() {
  // Define array
  var out = new Array()
  // Get sheets
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();

  // Work through each sheet one at a time
  for (var i=0 ; i<sheets.length ; i++) {
    // define the current sheet
    var curSheetName = sheets[i].getName();
    // determine if matches criteria
    if(curSheetName == "CM:") { //***************** NEED HELP HERE
      // put into array if matches criteria
      out.push( [ sheets[i].getName() ] );
//      RUN FUNCTION HERE
    }
  }
}

任何帮助表示赞赏! 干杯, 迈克

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    您可以使用 JavaScript Array.indexOf() 方法来实现这一点。


    示例:

    if (curSheetName.indexOf('CM:') !== -1) {
      ...
    }
    

    文档:

    【讨论】:

    • 感谢您的回复。我替换了该行并收到此错误:“TypeError:找不到函数包含在对象 Sheet1 中。”有什么想法吗?
    • @ChaPPer5,我已将答案更改为使用.indexOf() 而不是.includes(),看起来Google Apps 脚本没有方法.includes(),嗯,包含我>...
    • 忘了说谢谢,所以,谢谢 :D,我知道你在那里做了什么
    猜你喜欢
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多