gpt4 book ai didi

google-apps-script - 格式化绝对值的脚本不起作用

转载 作者:行者123 更新时间:2023-12-05 01:46:44 25 4
gpt4 key购买 nike

我有一个 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'));
}

最佳答案

函数setNumberFormat()需要一个具有您希望显示值的格式的字符串。例如,如果您将 '0.000' 作为格式,则单元格中的值将类似于 1 -> 1.00034 ​​-> 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);
}

如果这对您不起作用,请告诉我。

关于google-apps-script - 格式化绝对值的脚本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34048150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com