Javascript合并if语句
有人告诉我应该合并我的if语句。我不知道该怎么做?还有,这个脚本还有其他错误吗?这是一个谷歌文档脚本Javascript合并if语句,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,有人告诉我应该合并我的if语句。我不知道该怎么做?还有,这个脚本还有其他错误吗?这是一个谷歌文档脚本 function onEdit(e) { var colorA = "yellow"; var colorB = "#dddddd"; var colorC = "#dddddd"; var sheet = e.source.getActiveSheet(); var range = e.source.getActiveRange(); // 3 is column
function onEdit(e) {
var colorA = "yellow";
var colorB = "#dddddd";
var colorC = "#dddddd";
var sheet = e.source.getActiveSheet();
var range = e.source.getActiveRange();
// 3 is column C
if (range.getColumn() == 3) {
if (range.getValue() != "") {
sheet.insertRowAfter(range.getRow());
var r = range.getRow() + 1;
sheet.getRange("A" + r + ":H" + r).setBackgroundColor(colorC);
}
}
if (e.source.getActiveRange().getColumn() == 3 ||
e.source.getActiveRange().getColumn() == 8) {
var rows = sheet.getMaxRows();
//two ranges
//column C
var rangeC = sheet.getRange("C1:C"+rows);
var valuesC = rangeC.getValues();
//column H range
var rangeH = sheet.getRange("H1:H"+rows);
var colorH = rangeH.getBackgroundColors();
var valuesH = rangeH.getValues();
//iterate over each row in column C and H
//then change color
for (var row = 0; row < valuesC.length; row++) {
//check for columnC and column H
if (valuesC[row][0] != "" && valuesH[row][0] == "") {
colorH[row][0] = colorA;
} else if (valuesH[row][0] != "") {
colorH[row][0] = colorB;
}
}
sheet.getRange("H1:H" + rows).setBackgroundColors(colorH);
}
}
Here is the other one
ss = SpreadsheetApp.getActiveSpreadsheet();
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [ {name: "New PO", functionName: "NewPO"}];
ss.addMenu("New PO", menuEntries);
}
function NewPO() {
SpreadsheetApp.getActiveSheet().insertRowsBefore(1,6);
// Adjust this range accordingly, these are the cells that will be
// copied. Format is getRange(startRow, startCol, numRows, numCols)
ss.getSheetByName("PO Form").getRange(1, 1, 6, 8)
.copyTo(SpreadsheetApp.getActiveSheet().getRange(1, 1, 6, 8));
}
function onEdit(e) {
var ss = e.source.getActiveSheet();
var r = e.source.getActiveRange();
// 1 is A, 2 is B, ... 8 is H
if (r.getColumn() == 8 && r.getValue() == "x") {
r.setValue(Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd"));
}
}
函数onEdit(e){
var colorA=“黄色”;
var colorB=“#dddddd”;
var colorC=“#dddddd”;
var sheet=e.source.getActiveSheet();
var range=e.source.getActiveRange();
//3是C列
if(range.getColumn()==3){
如果(range.getValue()!=“”){
sheet.insertRowAfter(range.getRow());
var r=range.getRow()+1;
sheet.getRange(“A”+r+”:H”+r).setBackgroundColor(colorC);
}
}
如果(例如,source.getActiveRange().getColumn()==3||
e、 source.getActiveRange().getColumn()==8){
var rows=sheet.getMaxRows();
//两个范围
//C列
var range C=sheet.getRange(“C1:C”+行);
var valuesC=range c.getValues();
//H列范围
var rangeH=sheet.getRange(“H1:H”+行);
var colorH=rangeH.getBackgroundColors();
var valuesH=rangeH.getValues();
//迭代C列和H列中的每一行
//然后换颜色
对于(变量行=0;行
我能看到的唯一东西是:
//3是C列
if(range.getColumn()==3){
如果(range.getValue()!=“”){
//3是C列
如果(range.getColumn()==3&&range.getValue()!=”){除了murray提到的以外,还有几个实例可以重复相同的表达式:
if (e.source.getActiveRange().getColumn() == 3 ||
e.source.getActiveRange().getColumn() == 8) {
可以是:
var col = e.source.getActiveRange().getColumn();
if(col == 3 || col == 8) {
这在较小程度上适用于:
if (valuesC[row][0] != "" && valuesH[row][0] == "") {
colorH[row][0] = colorA;
} else if (valuesH[row][0] != "") {
colorH[row][0] = colorB;
}
可能是(例如):
+1局部变量的访问速度比外部对象属性的引用快。您还可以将“for(var row=0;row
var hRow = colorH[row];
if (valuesC[row][0] != "" && valuesH[row][0] == "") {
hRow[0] = colorA;
} else if (valuesH[row][0] != "") {
hRow[0] = colorB;
}