【问题标题】:Format Google Sheets cell as a currency number after value is returned by a custom function?自定义函数返回值后,将 Google 表格单元格格式化为货币数字?
【发布时间】:2018-03-20 13:30:34
【问题描述】:

我不知道如何对从自定义函数加载值的单元格进行货币格式化。该值是一个字符串(仅包含数字)。如果我将返回带有货币符号的格式化字符串,我将无法对该单元格进行算术运算。

我已尝试将格式化操作添加到 onEdit 函数:

function onEdit(e)
{
  activesheet.getRange("B3:Z3").setNumberFormat("$0,000.00");
}

但是 B3:Z3 行中的值在编辑后仍然没有格式化。

我错过了什么?

谢谢

【问题讨论】:

  • 你确定activesheet 意味着什么吗?查看 event objects 上的 Apps 脚本文档,看看您有哪些可用参数。另请注意,您可以简单地在实际电子表格菜单中为该静态单元格区域定义自定义数字格式,并让您的自定义函数返回一个数值。
  • 是的,忘了说 activesheet 是我的 getActiveSheet() 对象,这没有问题。我试图通过按格式 -> 数字 -> 货币来自定义格式。当该单元格中有静态数据时它会格式化,但如果数据由 =myFunc() 加载则不会
  • 单元格格式不要求值是静态的。如果它们没有按照您期望的方式进行格式化,那么数据的类型就不是正确的。

标签: google-apps-script google-sheets-api


【解决方案1】:

对于那些可能遇到相同问题的人,我将发布对我有用的解决方案:

在我的例子中,我的自定义函数 myFunc() 返回了一个字符串(即使它只包含数字)。我认为在这种情况下它可以格式化,但我错了。

解决方法是对 myFunc() 返回的数据使用 parseInt() 或 parseFloat(),因此数据类型将为数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    相关资源
    最近更新 更多