如何以条件结束脚本?谷歌应用程序脚本



我有一个代码:

function bakePercentageA() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
// Where is the percentage range?
var range = "B2:D2";
// Get the corresponding percentage value
var percentage = ss.getSheetByName("Total").getRange(range).getValues();

// Get the range to put the percentage value in
var clientSheet = ss.getSheetByName("clientA");
var lastRow = clientSheet.getLastRow();
// Bake the value into the range
clientSheet.getRange(lastRow, 4, 1, 3).setValues(percentage);
}

嗨,我有个问题。每次运行该代码时,它都会在第4列的最后一行设置工作表clientA的值。有时,该单元格中已经有数据,它将被覆盖。如何进行调整,以便如果最后一个单元格为空,则设置值,如果有值,则脚本终止。谢谢

在您的情况下,以下修改如何?

发件人:

clientSheet.getRange(lastRow, 4).setValue(percentage);

收件人:

var range = clientSheet.getRange(lastRow, 4);
if (range.isBlank()) {
range.setValue(percentage);
}
  • 在此修改中,当clientSheet.getRange(lastRow, 4)为空时,运行range.setValue(percentage)

参考:

  • isBlank((

添加:

我注意到你的问题变了。在这种情况下,下面的修改如何?

发件人:

clientSheet.getRange(lastRow, 4, 1, 3).setValues(percentage);

收件人:

var range = clientSheet.getRange(lastRow, 4, 1, 3);
if (range.getValues()[0].join("") == "") {
range.setValues(percentage);
}
function bakePercentageA() {
const ss = SpreadsheetApp.getActive();
const range = "B2";
const percentage = ss.getSheetByName("Total").getRange(range).getValue();
const clientSheet = ss.getSheetByName("clientA");
const lastRow = clientSheet.getLastRow();
if(!clientSheet.getRange(lastRow,4).getValue()=='') {//just checks the to see if the value is null before writing a new value.
clientSheet.getRange(lastRow, 4).setValue(percentage);
}
}

相关内容

最新更新