【发布时间】:2021-11-24 04:23:49
【问题描述】:
Test1工作表
Test2工作表
我想比较 Test1 A Column 中的 News01 和 Test2 A Column,并需要获取对应的 Test2 B 列价值
所以结果应该是 Sheet1 B 列中的 Finance
但如果我使用 else,即使 if 语句为真,它也会使用 else 语句。 如果我删除 else 语句,那么 if 语句正在工作。
不知道为什么当if语句为真时,默认为else语句
function test() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var source_sheet = sheet.getSheetByName("Test1");
var target_sheet = sheet.getSheetByName("Test2");
var lastRow = source_sheet.getLastRow();
var inputs = source_sheet.getRange('A' + lastRow).getValues().flat();
var days = target_sheet.getRange('A1:A').getValues().flat();
var codes = target_sheet.getRange('B1:B').getValues().flat();
inputs.forEach(function(input, count){
for(var i = 0; i < days.length; i++){
if(days[i].trim() == input.trim()){
source_sheet.getRange('B' + (count + source_sheet.getLastRow())).setValue(codes[i]);
Logger.log(codes[i]);
break;
}
else{
Logger.log("News not found")
}
}
});
}
【问题讨论】:
-
我必须为我糟糕的英语水平道歉。不幸的是,我无法理解
But If I use else, even when if statement is true it's going to else statement.。可以问一下具体情况吗? -
If 语句在我在问题中附加的脚本中为真。所以我的输出应该是 Finance 但是当我运行脚本时,我从 else 语句中得到 News not found。所以,我不知道,当 if 语句为真时,它应该进入 if 语句。但这将是 else 声明。如果我删除 else 语句,则 If 语句按预期工作。
-
感谢您的回复。从您的示例输入情况来看,我认为当您的脚本运行时,
days[i].trim() == input.trim()在第一个循环中是false。而且,在第二个循环中,days[i].trim() == input.trim()是true。这样,setValue的脚本就会运行。这个流程怎么样?
标签: javascript if-statement google-apps-script google-sheets