自定义功能停止工作

时间:2017-09-01 00:28:28

标签: google-apps-script google-sheets

我有一张使用简单自定义函数的工作表给我当前月份的缩写。

/**
* A custom function takes a # and returns a month
 *
 * @param {Number} Month #.
 * @return {String} Month Name.
 * @customfunction
 */
function MONTHNAME(input) {
  var monthvar = {
    1:'Jan',
    2:'Feb',
    3:'Mar',
    4:'Apr',
    5:'May',
    6:'Jun',
    7:'Jul',
    8:'Aug',
    9:'Sep',
    10:'Oct',
    11:'Nov',
    12:'Dec'
  }
  return monthvar[input]
}

如果我将此代码复制并粘贴到不同的工作表(不是这个代码的副本),那么它可以按预期工作。

我通常会在= MONTHNAME(MONTH(TODAY())这样的单元格中输入它。

我有一个excel功能的解决方法,但它看起来很乱。

  

= IF(MONTH(TODAY())= 1,“Jan”,if(MONTH(TODAY())= 2,“Feb”,IF(MONTH(TODAY())= 3,“Mar”,如果(MONTH(TODAY())= 4,“Apr”,if(MONTH(TODAY())= 5,“May”,if(MONTH(TODAY())= 6,“Jun”,if(MONTH(TODAY( ))= 7,“Jul”,if(MONTH(TODAY())= 8,“Aug”,if(MONTH(TODAY())= 9,“Sep”,if(MONTH(TODAY())= 10, “Oct”,if(MONTH(TODAY())= 11,“Nov”,if(MONTH(TODAY())= 12,“Dec”,“ - ”))))))))))))< / p>

我还试图转到Reference from google,我复制了双重功能,但这张照片也失败了。

/**
 * Multiplies the input value by 2.
 *
 * @param {number} input The value to multiply.
 * @return The input multiplied by 2.
 * @customfunction
 */
function DOUBLE(input) {
  return input * 2;
}

我已经转到2个不同的帐户,删除了此脚本的权限并重新添加。它们在脚本编辑器的调试器中运行得非常好。

有什么建议吗?我不想在此重新设置新的电子表格。

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

=INDEX( {"Jan"; "Feb"; "Mar"; "Apr"; "May"; "Jun"; "Jul"; "Aug"; "Sep"; "Oct"; "Nov"; "Dec"}, MONTH(TODAY()))

您的自定义函数可能正常工作,但不会像本机函数那样一直刷新。

反之亦然:

=MATCH("Apr", {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"},0)

或使用text功能:

= text(today(),"mmm")