【问题标题】:Custom function in Google Script doesn't work when downloaded as Microsoft ExcelGoogle Script 中的自定义函数在下载为 Microsoft Excel 时不起作用
【发布时间】:2019-12-06 05:04:28
【问题描述】:

我对 JS 很陌生。我用 Google Script 写了一个简单的函数。它在 Google 表格中运行良好。但是,当工作表下载为 Microsoft Excel 时会出错。我的功能如下。

function test(input){
  var str = "";
  for(i=0; i<input.length; i++){
    for(j=0; j<input[i].length; j++){
      var char0 = input[i][j].charAt(0).toUpperCase();
      var sub = input[i][j].substr(1,input[i][j].length);
      str = str.concat(char0,sub,",");               
    }
  }
  return str;
}

【问题讨论】:

  • 就我个人而言,我没想到它会起作用。

标签: javascript excel google-apps-script google-sheets


【解决方案1】:

较新版本的 Microsoft Excel 支持 javascript。见以下链接

Create custom functions in Excel

根据此链接,您需要具有以下版本才能使用此功能。

请注意,Excel 自定义函数可在以下平台上使用。

  • Office on Windows(版本 1904 或更高版本,连接到 Office 365 订阅)
  • Mac 版 Office(版本 16.24 或更高版本,已连接到 Office 365 订阅)
  • 网络办公
  • iPad 或一次性购买的 Office 2019 或更早版本目前不支持 Excel 自定义函数。

或者,您可以使用 VBA 构建一个用户定义的函数,如果您想继续使用具有上述以外版本的 Excel,该函数将获得类似的结果。

等效的 VBA UDF 如下所示,它可以以非常相似的方式在单元格中使用,即=UCaseString(K2),其中数据在单元格K2

Function UCaseString(strInput As String) As String
Dim i As Long
UCaseString = ""
For i = 1 To Len(strInput)
    UCaseString = UCaseString & Mid(UCase(strInput), i, 1) & ","
Next i
End Function

【讨论】:

  • 我认为 excel 专门支持 JavaScript office-js
  • @TheMaster 你是对的。并非在所有版本的 Excel 中都可以实现。我已经编辑了我的答案以反映相关细节。谢谢指正。
猜你喜欢
  • 2021-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多