Google 张 API 中的 IF ELSE 循环问题
IF ELSE Loop problem in Google Sheets API
下面的代码从一个小表格中提取数据,在 sheet "dbs" 中搜索唯一 ID "uid" 并将新信息复制到 [=24] 中的正确行=].如果我试图通过将新行粘贴到 sheet 的底部来完成任务,如果该人尚不存在 "dbs" sheet.
我试过 "if else" 和 "if",都在寻找和不寻找“!== uid”和“”。
(复制到行 // 仅用于调试)
/** @OnlyCurrentDoc */
function submitData() {
var ss = SpreadsheetApp.getActive();
var static = ss.getSheetByName("Static Data"); //static data sheet
var dbs = ss.getSheetByName("DBS Information"); //dbs sheet
var menu = ss.getSheetByName("Menu");
var uid = menu.getRange('E8').getValue();
var values = dbs.getDataRange().getLastRow();
// Logger.log(values)
//find row number
for (var i = 0; i < values.length; i++) {
var row = "";
for (var j = 0; j < values[i].length; j++) {
if (values[i][j] == uid) {
row = values[i][j];
var x = 1;
var z = x + i;
Logger.log(z);
// static.getRange("F2:M2").copyTo(dbs.getRange((z),1), {contentsOnly:true});
} else {
var R = dbs.getLastRow().getvalue;
Logger.log(R);
// static.getRange("F2:M2").copyTo(dbs.getRange((R),1), {contentsOnly:true});
}
}
};
};
如果找到 uid
,您可以尝试设置一个 found
变量,然后在循环后检查它以查看是否添加新行。
/** @OnlyCurrentDoc */
function submitData() {
var ss = SpreadsheetApp.getActive();
var static = ss.getSheetByName("Static Data"); //static data sheet
var dbs = ss.getSheetByName("DBS Information"); //dbs sheet
var menu = ss.getSheetByName("Menu");
var uid = menu.getRange('E8').getValue();
var values = dbs.getDataRange().getLastRow();
// Logger.log(values)
//find row number
var found = false;
for (var i = 0; i < values.length; i++) {
var row = "";
for (var j = 0; j < values[i].length; j++) {
if (values[i][j] == uid) {
row = values[i][j];
var x = 1;
var z = x + i;
Logger.log(z);
found = true;
break;
// static.getRange("F2:M2").copyTo(dbs.getRange((z),1), {contentsOnly:true});
}
}
};
if (!found) {
var R = dbs.getLastRow().getvalue;
Logger.log(R);
// static.getRange("F2:M2").copyTo(dbs.getRange((R),1), {contentsOnly:true});
}
};
下面的代码从一个小表格中提取数据,在 sheet "dbs" 中搜索唯一 ID "uid" 并将新信息复制到 [=24] 中的正确行=].如果我试图通过将新行粘贴到 sheet 的底部来完成任务,如果该人尚不存在 "dbs" sheet.
我试过 "if else" 和 "if",都在寻找和不寻找“!== uid”和“”。
(复制到行 // 仅用于调试)
/** @OnlyCurrentDoc */
function submitData() {
var ss = SpreadsheetApp.getActive();
var static = ss.getSheetByName("Static Data"); //static data sheet
var dbs = ss.getSheetByName("DBS Information"); //dbs sheet
var menu = ss.getSheetByName("Menu");
var uid = menu.getRange('E8').getValue();
var values = dbs.getDataRange().getLastRow();
// Logger.log(values)
//find row number
for (var i = 0; i < values.length; i++) {
var row = "";
for (var j = 0; j < values[i].length; j++) {
if (values[i][j] == uid) {
row = values[i][j];
var x = 1;
var z = x + i;
Logger.log(z);
// static.getRange("F2:M2").copyTo(dbs.getRange((z),1), {contentsOnly:true});
} else {
var R = dbs.getLastRow().getvalue;
Logger.log(R);
// static.getRange("F2:M2").copyTo(dbs.getRange((R),1), {contentsOnly:true});
}
}
};
};
如果找到 uid
,您可以尝试设置一个 found
变量,然后在循环后检查它以查看是否添加新行。
/** @OnlyCurrentDoc */
function submitData() {
var ss = SpreadsheetApp.getActive();
var static = ss.getSheetByName("Static Data"); //static data sheet
var dbs = ss.getSheetByName("DBS Information"); //dbs sheet
var menu = ss.getSheetByName("Menu");
var uid = menu.getRange('E8').getValue();
var values = dbs.getDataRange().getLastRow();
// Logger.log(values)
//find row number
var found = false;
for (var i = 0; i < values.length; i++) {
var row = "";
for (var j = 0; j < values[i].length; j++) {
if (values[i][j] == uid) {
row = values[i][j];
var x = 1;
var z = x + i;
Logger.log(z);
found = true;
break;
// static.getRange("F2:M2").copyTo(dbs.getRange((z),1), {contentsOnly:true});
}
}
};
if (!found) {
var R = dbs.getLastRow().getvalue;
Logger.log(R);
// static.getRange("F2:M2").copyTo(dbs.getRange((R),1), {contentsOnly:true});
}
};