VBA 的格式函数在 Google Scripts/Sheets 中的等价物是什么?

What is VBA's format function equivalent in Google Scripts/Sheets?

我在 Google 脚本中实现下一个 VBA 代码的目标时遇到了一些麻烦(更改变量的数字格式,在左侧添加零直到数字)

'VBA CODE
sub addingZeros()
  dim num1 as double
 'Cell A1's value is 1, so I get 0001 
  num1 = format(thisWorkbook.Sheets("MySheet").range("A1"),"0000")
end sub

当我研究的时候,一切都指出使用 setNumberFormat 函数,这对我来说不是一个解决方案,因为让我改变 sheet 中的数字,我只需要改变变量值出于进一步的目的...我发现只有一种不同的解决方案,它使用文本函数,但我无法使其工作 (link for that solution)

我想要一个类似这样的代码:

//Google Scripts CODE
function myFunction() {
  var ss = SpreadsheetApp.openById(`XXXXXXXXXXXXX`);
  var sheet = ss.getSheetByName('MySheet');
  var num1 = format(sheet.getRange('a1').getValue(),"0000");
  //Cell A1's value is 1, so I'm expecting to get 0001 
  Logger.log(num1);
};

非常感谢您的帮助。 安东尼奥

我相信你的目标如下。

  • 您想要从单元格中检索一个值,并且您想要将格式从 1 转换为 0001
  • 您想使用 Google Apps 脚本实现此目的。

模式一:

在此模式中,使用了Utilities.formatString

示例脚本:

function myFunction() {
  var ss = SpreadsheetApp.openById(`XXXXXXXXXXXXX`);
  var sheet = ss.getSheetByName('MySheet');

  var res = Utilities.formatString("%04d", sheet.getRange("A2").getValue()); // Modified

  Logger.log(res)
}
  • 在此修改中,从单元格“A1”中检索 1 的值,并使用 Utilities.formatString.
  • 将格式转换为 0001

模式二:

在此模式中,使用了 setNumberFormat

示例脚本:

function myFunction() {
  var ss = SpreadsheetApp.openById(`XXXXXXXXXXXXX`);
  var sheet = ss.getSheetByName('MySheet');

  var res = sheet.getRange("A1").setNumberFormat("0000").getDisplayValue(); // Modified

  Logger.log(res)
}
  • 在此修改中,使用 setNumberFormat 更改单元格“A1”的格式并使用 getDisplayValue 检索显示值。

注:

  • 这些修改后的脚本是简单的修改。所以请根据您的实际情况进行修改。

参考文献: