首页 > 解决方案 > 在谷歌脚本中发出匹配参数

问题描述

我是脚本新手,并且一直在尝试获取一个脚本,以便在选中复选框时将日期放在相邻的单元格中。这是我试图开始工作的整个脚本的一小部分。我正在尝试编写一个脚本来从另一个工作表值构建一个新工作表,包括命名工作表。

当我在 if 语句中输入工作表名称时,我可以让脚本工作,但是当我尝试通过调用工作表名称和调用字符串来使用参数时,我无法让它们返回真值。

当我记录工作表名称和它们匹配的字符串时。如果我将日志中的以太值复制并粘贴到工作表名称中,它将返回 true。当我输入工作表的名称时,它也会返回 true。

我试图改变类型使用:toString()但这没有奏效。

我试图使用lengthandtypeof来找到解决方案,从这个页面:

如何调试在谷歌应用脚​​本中不相等的相同字符串?

但它们的类型和长度相同。我试图让every此页面上的功能正常工作,但未能成功运行。

我这样使用它:

[td].every((char,i) => char === nac[i] || console.info(`Unequal character at ${i}`))

并得到这个错误:

10:55:03 AM Error   
TypeError: Cannot read property 'every' of undefined
onEdit  @ Time Stamp test day.gs:33

代码:

function onEdit(e) {
  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ac = ss.getActiveSheet();
  var as = ss.getActiveSheet().getSheetName();
 
  var d = new Date();

  var month = new Array(12);
  month[0] = "Jan";
  month[1] = "Feb";
  month[2] = "Mar";
  month[3] = "Apl";
  month[4] = "May";
  month[5] = "Jun";
  month[6] = "Jul";
  month[7] = "Aug";
  month[8] = "Sep";
  month[9] = "Oct";
  month[10] = "Nov";
  month[11] = "Dec";
  
  var year = d.getFullYear();
  var date = d.getDate();
  var today = month[d.getMonth()] + " " + date +", " + year
  var td = "Test " + today
  var nac = ac.getSheetName()
  
Logger.log(td)
Logger.log(nac)
Logger.log(nac == td)

if(nac == td) {

  var cell = ac.getActiveCell()
  var col = cell.getColumn()

  if(col == 9 && cell.getValue() == true){

    Logger.log(123456)

    var date = new Date()
    var dateCell = cell.offset(0,1)

    dateCell.setValue(date)

    }//close if
  } // Close if
} // Close function

日志

11:26:46 PM Notice  Execution started
11:26:47 PM Info    Test Dec 27, 2020
11:26:47 PM Info    Test Dec 27, 2020
11:26:47 PM Info    false
11:26:47 PM Notice  Execution completed

标签: google-apps-script

解决方案


推荐阅读