Javascript 函数起作用,但单元格中没有显示任何内容

Javascript 函数起作用,但单元格中没有显示任何内容,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,所以我有一个名为shift的函数,它根据时间返回用户的班次 当我运行程序时,时间和日期会进入电子表格中的单元格,但我的移位值不会。我知道我的shift函数返回一个值,因为我已经使用test函数对它进行了测试,并且正确的值出现在我的日志中。这是我的密码: const timezone = SpreadsheetApp.getActive().getSpreadsheetTimeZone(); /** @returns {string} */ function timestamp() { va

所以我有一个名为shift的函数,它根据时间返回用户的班次

当我运行程序时,时间和日期会进入电子表格中的单元格,但我的移位值不会。我知道我的shift函数返回一个值,因为我已经使用test函数对它进行了测试,并且正确的值出现在我的日志中。这是我的密码:

const timezone = SpreadsheetApp.getActive().getSpreadsheetTimeZone();

/** @returns {string} */
function timestamp() {
  var timestamp_format = "HH:mm:ss";
  return Utilities.formatDate(new Date(), timezone, timestamp_format);
}

/** @returns {string} */
function datestamp() {
  var datestamp_format = "yyyy-MM-dd";
  return Utilities.formatDate(new Date(), timezone, datestamp_format);
}

function shift() {
  var shift;
  const dt = timestamp();
  if(dt > "08:00:00" && dt < "13:59:00"){
    shift = "1";
  }
  return shift;
} 

function test(){

  shifts = shift();
  console.log(shifts);
}

/* @Process Form */
function processFormHood(formObject) {
  var url = "GOOGLE DOCS URL";
  var ss = SpreadsheetApp.openByUrl(url);
  var ws = ss.getSheetByName("SHEETNAME");
  
  ws.appendRow([
                datestamp(),
                timestamp(),
                shift()])
}
const timezone=SpreadsheetApp.getActive().getSpreadsheetTimeZone();
/**@返回{string}*/
函数时间戳(){
var timestamp_format=“HH:mm:ss”;
return Utilities.formatDate(new Date(),timezone,timestamp_格式);
}
/**@返回{string}*/
函数日期戳(){
var datestamp_format=“yyyy-MM-dd”;
return Utilities.formatDate(新日期(),时区,日期戳_格式);
}
函数移位(){
var移位;
常数dt=时间戳();
如果(dt>“08:00:00”和&dt<“13:59:00”){
shift=“1”;
}
返回移位;
} 
功能测试(){
移位=移位();
控制台日志(班次);
}
/*@进程表*/
函数processFormHood(formObject){
var url=“谷歌文档url”;
var ss=SpreadsheetApp.openByUrl(url);
var ws=ss.getSheetByName(“SHEETNAME”);
ws.appendRow([
日期戳(),
时间戳(),
shift()])
}

最后一个函数从HTML表单中获取值并将其写入电子表格。例如“formObject.value”,我曾尝试使用shift函数来执行此操作,但没有成功。它应该在其中的单元格被跳过,并且在它被填满之后,所有的事情都被跳过了。

似乎我所要做的就是不再拥有它

function shift() {
 var shift;
  const dt = timestamp();
  if(dt > "08:00:00" && dt < "13:59:00"){
    shift = "1";
  }
  return shift;
} 
函数移位(){
var移位;
常数dt=时间戳();
如果(dt>“08:00:00”和&dt<“13:59:00”){
shift=“1”;
}
返回移位;
} 
我需要做的是让它在不使用varables的情况下返回:

function shift() {
  const dt = timestamp();
  if(dt > "06:00:00" && dt < "13:59:99"){
    return 1;
  }
  else if(dt > "14:00:00" && dt < "21:59:59"){
    return "2,3";
  }
}
函数移位(){
常数dt=时间戳();
如果(dt>“06:00:00”和&dt<“13:59:99”){
返回1;
}
否则如果(dt>“14:00:00”和&dt<“21:59:59”){
返回“2,3”;
}
}

我认为在您问题中的脚本中,当运行
processFormHood
时,
[datestamp(),timestamp(),shift()]
的值会附加到电子表格中。因此,为了正确理解您的问题,即功能正常,但单元格中没有显示任何内容,我可以询问您复制问题的详细流程吗?顺便说一句,我无法理解
示例是“formObject.value”,我曾尝试使用shift函数来执行此操作,但它不起作用。它应该在其中的单元格将被跳过,并在填充完之后执行所有操作。
@Tanaike当processFormHood运行时,它将我的函数的结果放入一个没有数据的行中,例如,假设第6行中没有数据,然后单元格A6接收datestamp()的值,B6接收timestamp()的值,然后C6应该接收shift()的值,但这就是问题所在,因为单元格中没有插入任何内容。@Tanaike此函数还有一个formObject参数。此参数检索从HTML表单提交的答案,然后将其值插入“我的单元格”。例如,假设我的HTML表单中有,那么formObject.task将获得该值。感谢您的回复。关于
C6应该接收shift()的值,但这是一个问题,因为单元格中没有插入任何内容。
在脚本中,字符串值作为日期进行比较。我想这就是你的问题所在。在这种情况下,可能会有用。关于
这个函数还有一个formObject参数。
,在您的脚本中,似乎没有使用
formObject
。这个怎么样?