如何在Google脚本中打印变量

时间:2018-07-13 15:58:40

标签: google-apps-script google-sheets custom-function

function checkWho(n,b)
{
 // n and be are comparing two different cells to check if the name is in the registry
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getActiveSheet();
 var glr = sheet.getLastColumn();
 var glr2 = sheet.getLastRow();
for(var i = 9; i <= glr; i++)
 {
   for(var z = 10; z<= glr2; z++)
    {
      if( n == b)
      {
       var courts = sheet.getRange(3,i).getValue();
       var times = sheet.getRange(z,10).getValue();
       return(b+ " "+"has booked"+" "+ courts+" "+"at"+times);
}
}
}
}

我在打印var法院和var time中包含的值时遇到问题。我的代码由两个for循环组成,它们遍历列和行,并最终吐出用户名,他们预订的法院以及在什么时间。到目前为止,这个名字已经被印上,但是法院和时代却没有。

当前打印:“(名称)已预订” 当我要打印时:“(名字)已经在4:30预订了第1法院”

对情况有帮助吗?

1 个答案:

答案 0 :(得分:0)

发生的事情是嵌套的for语句正在覆盖结果。法院和时间很可能是""(空字符串),因为迭代是从起始列/行开始并针对下一个列/行重复。最后一列/行为空是很常见的。

旁注:

  1. 脚本中包含一条注释,其中提到自定义函数参数是单元格,但自定义函数不能以与getCurrentCell()相同的方式将单元格用作参数。自定义函数的参数类型可以是字符串,数字,日期或数组。

  2. 比较嵌套的for语句中的参数是没有意义的,因为它们在每次迭代中都不会改变。

  3. 在嵌套的for语句中包含一个返回值将停止迭代。由于参数与迭代无关,因此仅对问题中考虑的情况进行第一次迭代。