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
检索显示值。
注:
- 这些修改后的脚本是简单的修改。所以请根据您的实际情况进行修改。
参考文献:
我在 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
检索显示值。
注:
- 这些修改后的脚本是简单的修改。所以请根据您的实际情况进行修改。