If statement Google脚本-正确删除Else语句,使其跳过/忽略
我有一个检查表,C列指出哪个测试是通过单元格中的“启用”或“禁用”自动进行的 行的下一行是一列,用于每个测试的Pass/Empty列 我有一段代码,如果在C列中启用,在该行的X列中,会自动标记为Pass(在我的例子中是“p”) 问题是:如果C列包含“Disabled”,但也包含一个Pass,那么当我运行脚本时,它会用一个空单元格替换该Pass。如何更改else语句以忽略该单元格,并保留其中的内容,以满足启用条件之外的任何内容If statement Google脚本-正确删除Else语句,使其跳过/忽略,if-statement,google-apps-script,If Statement,Google Apps Script,我有一个检查表,C列指出哪个测试是通过单元格中的“启用”或“禁用”自动进行的 行的下一行是一列,用于每个测试的Pass/Empty列 我有一段代码,如果在C列中启用,在该行的X列中,会自动标记为Pass(在我的例子中是“p”) 问题是:如果C列包含“Disabled”,但也包含一个Pass,那么当我运行脚本时,它会用一个空单元格替换该Pass。如何更改else语句以忽略该单元格,并保留其中的内容,以满足启用条件之外的任何内容 function autoPassPC() { var ss =
function autoPassPC() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Aug 2020');
// What to put in the test result
var values1 = "P";
// Where to look for Auto:
var values2 = sheet.getRange("C10:C15" + sheet.getLastRow()).getValues();
// Keyword to look for in Auto: column
var putValues = [];
for (var i = 0; i < values2.length; i++) {
if (values2[i][0] === "Enabled") {
putValues.push([values1]);
} else {
putValues.push([""]);
}
}
// Put value1 inside row, column# for test result
sheet.getRange(10, 25, putValues.length, 1).setValues(putValues);
}
适当地?只要删除它,脚本就会在每一行上加上“P”。只是想让它忽略单元格
谢谢 删除
else
语句实际上会跳过该行,但一旦跳过一行,putValues
中的以下所有值都将位于错误的行上。不要“跳过”,而是尝试将已存在的值推入putValues
function autoPassPC() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Aug 2020');
// What to put in the test result
var values1 = "P";
// Where to look for Auto:
var enabledDisabled = sheet.getRange("C10:C15" + sheet.getLastRow()).getValues();
var testResultsRange = sheet.getRange("X10:X15" + sheet.getLastRow());
var testResults = testResultsRange.getValues();
// Keyword to look for in Auto: column
var putValues = [];
for (var i = 0; i < enabledDisabled.length; i++) {
if (enabledDisabled[i][0] === "Enabled") {
putValues.push([values1]);
} else {
putValues.push([testResults[i][0]]); // Push the existing cell value
}
}
// Put value1 inside row, column# for test result
testResultsRange.setValues(putValues);
}
函数autoPassPC(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName('2020年8月');
//在测试结果中放什么
var values1=“P”;
//在何处查找汽车:
var enabledDisabled=sheet.getRange(“C10:C15”+sheet.getLastRow()).getValues();
var testResultsRange=sheet.getRange(“X10:X15”+sheet.getLastRow());
var testResults=testResultsRange.getValues();
//要在“自动:列”中查找的关键字
var值=[];
对于(变量i=0;i
您也可以尝试一次获取整个表,因此只有一个
getValues()
调用。删除else
语句实际上会跳过该行,但一旦跳过一行,putValues
中的所有以下值都将位于错误的行上。不要“跳过”,而是尝试将已存在的值推入putValues
function autoPassPC() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Aug 2020');
// What to put in the test result
var values1 = "P";
// Where to look for Auto:
var enabledDisabled = sheet.getRange("C10:C15" + sheet.getLastRow()).getValues();
var testResultsRange = sheet.getRange("X10:X15" + sheet.getLastRow());
var testResults = testResultsRange.getValues();
// Keyword to look for in Auto: column
var putValues = [];
for (var i = 0; i < enabledDisabled.length; i++) {
if (enabledDisabled[i][0] === "Enabled") {
putValues.push([values1]);
} else {
putValues.push([testResults[i][0]]); // Push the existing cell value
}
}
// Put value1 inside row, column# for test result
testResultsRange.setValues(putValues);
}
函数autoPassPC(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName('2020年8月');
//在测试结果中放什么
var values1=“P”;
//在何处查找汽车:
var enabledDisabled=sheet.getRange(“C10:C15”+sheet.getLastRow()).getValues();
var testResultsRange=sheet.getRange(“X10:X15”+sheet.getLastRow());
var testResults=testResultsRange.getValues();
//要在“自动:列”中查找的关键字
var值=[];
对于(变量i=0;i
您还可以尝试一次获取整个表,这样就只有一个
getValues()
调用。令人惊讶的是,这似乎正是我想要的工作方式。非常感谢。代码中似乎有什么东西在文档中创建了行?@Leffer这与您定义范围的方式有关,我真的不理解,但假设您这样做是出于特定的原因。如果最后一行是20,那么C10:C15“+sheet.getLastRow()
将导致“C10:C1520”。您知道如何从这里解决吗?噢,哈哈,我删除了+sheet.getLastRow()在C和X中直接使用我需要的范围现在似乎很好。非常感谢Diego非常感谢令人惊讶的是,这似乎正是我想要的。非常感谢。代码中的某些内容似乎在文档中创建行?@Leffer这与你定义范围的方式有关,我真的没有这样做如果最后一行是20,那么C10:C15“+sheet.getLastRow()
将导致“C10:C1520”。你知道如何从这里解析吗?噢,哈哈,我删除了+sheet.getLastRow()并简单地直接在C和X中使用我需要的范围,现在看起来效果不错。非常感谢迭戈,非常感谢