Я хочу считать значения из указанной строки c на одном листе и вставить их в другой лист под друг другом. Проблема в том, что если ячейка пуста, я, очевидно, не хочу вставлять пустое значение под последним значением на новом листе. Я сделал следующее: l oop:
var lastCol = ppt2019.getLastColumn();
var row = SpreadsheetApp.getUi().prompt(
'Enter row to read out values from'
).getResponseText();
var row2 = 4;
for (var i = 0; i <= lastCol - 3; i++) {
var plakatMenge = ppt2019.getRange(row, 3 + i).getValues();
if (plakatMenge === "") {
continue;
}
else {
newSheet.getRange(row2, 3).setValue(plakatMenge);
row2++;
}
}
Он считывает значения и помещает их в правильный столбец и начальную строку, но вместо того, чтобы просто перейти к setValues
в этой ячейке, если прочитанное значение пусто, оно все еще вставляет пустое значение. Это должно выглядеть так:
Values
10
10
20
30
10
, но выглядит так:
Values
10
10
20
30
10
Для сравнения приведу полный скрипт (я не программист, поэтому не прошу не судите об отсутствии формы)
function tourzettelV4() {
var app = SpreadsheetApp.getActive();
var ppt2019 = app.getSheetByName("PlakatTool2019");
var row = SpreadsheetApp.getUi().prompt(
'Gib die Zeile mit dem Datum für die Tour ein'
).getResponseText();
var dateTour = ppt2019.getRange(row, 1).getValue();
var makeNewSheet = app.getSheetByName("Tour " + dateTour);
if (makeNewSheet != null) {
app.deleteSheet(makeNewSheet);
}
makeNewSheet = app.insertSheet();
makeNewSheet.setName("TourzettelV2");
var newSheet = app.getSheetByName("TourzettelV2")
newSheet.getRange(1, 1).setValue(dateTour);
newSheet.getRange(1, 2).setValue("Gebiet:");
newSheet.getRange(3, 1).setValue("Was");
newSheet.getRange(3, 2).setValue("Format");
newSheet.getRange(3, 3).setValue("Menge");
newSheet.getRange(3, 4).setValue("Info");
var lastCol = ppt2019.getLastColumn();
var checkCol = 3;
var row2 = 4;
for (var i = 0; i <= lastCol - 3; i++) {
var plakatMenge = ppt2019.getRange(row, 3 + i).getValues();
if (plakatMenge === ""){
continue;
}
else {
newSheet.getRange(row2, 3).setValue(plakatMenge);
row2++;
}
}
}