我使用此代码从一列中减去另一列,但带有 0 的单元格保持不变。当一个单元格中有 0,而另一个单元格是 6 时,减法后应该是 -6,但是此代码在出现 0 时不执行减法。如何消除此问题
function subtractSoldBulk() {
var sheet = SpreadsheetApp.getActiveSheet();
var maxRows = sheet.getMaxRows();
var soldRange = sheet.getRange(2, 3, maxRows); //
row, column, number of rows
var totalRange = sheet.getRange(2, 4, maxRows);
var soldValues = soldRange.getValues();
var totalValues = totalRange.getValues();
for (var row in soldValues) {
var soldCellData = soldValues[row][0];
var totalCellData = totalValues[row][0];
if (soldCellData != "" && totalCellData != "") {
totalValues[row][0] = totalCellData -
soldCellData;
soldValues[row][0] = "";
}
}
soldRange.setValues(soldValues);
totalRange.setValues(totalValues);
}
最佳答案
JavaScript 是一种奇怪的语言。看看下面的表达式的计算结果,事情就会变得清晰起来:
请记住,JS 引擎将尝试将两个操作数转换为单一类型(在本例中为数字)。空字符串的数值为“0”,因此“if”语句表达式的计算结果将为“false”。为了避免这种情况,请使用严格比较'!=='。
关于javascript - Google 应用程序脚本如何从 0 中减去一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49591359/