Cri*_*rdi 2 google-sheets google-apps-script
我有一个带有脚本的 Google 表格,该脚本可以为货币设置一些列的格式。但最近,我不得不修改脚本,以便它更改值——绝对值——以及开始添加负值——这些值会干扰使用它们的函数。我尝试了以下脚本,但值没有变化?,它们仍然是负数。我究竟做错了什么?
function onEdit(){
var Spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = Spreadsheet.getSheets()[0];
var Range = sheet.getRange('audit!f:q');
Range.clearFormat();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cell = sheet.getRange('audit!f:q');
cell.setNumberFormat(Math.abs('audit!f:q'));
}
Run Code Online (Sandbox Code Playgroud)
该函数setNumberFormat()需要一个字符串,其格式与您希望显示的值的格式相同。例如,如果您将其'0.000'作为格式放置,则单元格中的值将类似于1 -> 1.000、34 -> 34.000等。您将使用该函数clearFormat()删除此格式。
Math.abs() 将用于修改变量的实际值,因此它不是一种格式。
因此,在这种情况下,您需要循环使用范围内的值并Math.abs()在每个值上使用该函数以获得所需的值。
我修改了您的代码,以便它可以采用范围内的值并执行我上面描述的操作。我还删除了重复的代码。
function onEdit(){
var Spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = Spreadsheet.getSheets()[0];
var Range = sheet.getRange('Sheet1!a:b');
var cell = Range.getValues();
Range.clearFormat();
for(var row in cell)
{
for(var col in cell[row])
{
cell[row][col] = Math.abs(cell[row][col]);
}
}
Range.setValues(cell);
}
Run Code Online (Sandbox Code Playgroud)
如果这对您不起作用,请告诉我。
| 归档时间: |
|
| 查看次数: |
4716 次 |
| 最近记录: |