gpt4 book ai didi

javascript - 删除 a 列中没有任何内容的行的背景颜色

转载 作者:行者123 更新时间:2023-11-30 19:50:27 25 4
gpt4 key购买 nike

enter image description here仅当“A”列不为空时,该脚本才会根据“T”列中的指定值在一行中的非空白单元格中添加单元格背景色。我遇到的问题是脚本没有检查“A”列,如果“A”列中没有值,则删除该行的背景色。我想看看是否有人可以告诉我哪里出错了,在脚本的底部我检查了“A”列,然后将背景设置为“无”。反正有没有优化这个脚本?,运行需要一段时间。

function colors() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet_name = ['Current Sales','Pending Orders', 'Subcontract Orders', 'Partial Shipped', 'Quotes', 'Archived Sales'];
for (s=0; s<sheet_name.length; s++) {
var sheet = ss.getSheetByName(sheet_name[s]);
var range = sheet.getDataRange()
var values = range.getValues();

for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[i].length; j++) {
if (values[i][j] !== "" && values[i][19] == "Complete") {
range.getCell(i + 1, j + 1).setBackground("#99FF99");
}

if (values[i][j] !== "" && values[i][19] == "Revise") {
range.getCell(i + 1, j + 1).setBackground("#FA5959");
}

if (values[i][j] !== "" && values[i][19] == "Pending Next Step") {
range.getCell(i + 1, j + 1).setBackground("#FFFF33");
}

if (values[i][j] !== "" && values[i][19] == "Quoted") {
range.getCell(i + 1, j + 1).setBackground("#FFCCCC");
}

if (values[i][j] !== "" && values[i][19] == "Awaiting Vendor Response") {
range.getCell(i + 1, j + 1).setBackground("#FFCC99");
}

if (values[i][j] !== "" && values[i][19] == "Awaiting Customer Response") {
range.getCell(i + 1, j + 1).setBackground("#FF9999");
}

if (values[i][j] !== "" && values[i][19] == "Parts On Order") {
range.getCell(i + 1, j + 1).setBackground("#FF6666");
}

if (values[i][j] !== "" && values[i][19] == "Shipped Partial Order") {
range.getCell(i + 1, j + 1).setBackground("#FFB266");
}

if (values[i][j] !== "" && values[i][19] == "Awaiting SubContract Parts Work") {
range.getCell(i + 1, j + 1).setBackground("#66FFFF");
}

if (values[i][j] !== "" && values[i][19] == "Picking List Printed") {
range.getCell(i + 1, j + 1).setBackground("#FF9333");
}

if (values[i][j] !== "" && values[i][19] == "Waiting on BOL / Charges") {
range.getCell(i + 1, j + 1).setBackground("#3399FF");
}

if (values[i][j] !== "" && values[i][19] == "Quote Sold") {
range.getCell(i + 1, j + 1).setBackground("#FF66B2");
}

if (values[i][j] !== "" && values[i][19] == "Awaiting Vendor Confirmation") {
range.getCell(i + 1, j + 1).setBackground("#CC99FF");
}

if (values[i][j] !== "" && values[i][19] == "Ready To Ship") {
range.getCell(i + 1, j + 1).setBackground("#FFE5CC");
}

if (values [i][j] == "" && values[i][0] == "") {
range.getCell(i + 1, j + 1).setBackground('none');
}
}
}
}
}

function colors() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet_name = ['Current Sales','Pending Orders', 'Subcontract Orders', 'Partial Shipped', 'Quotes', 'Archived Sales'];
for (s=0; s<sheet_name.length; s++) {
var sheet = ss.getSheetByName(sheet_name[s]);
var range = sheet.getRange(2,1,sheet.getMaxRows(),sheet.getMaxColumns());
var values = range.getValues();
var cIndex;
var TArr = ['Complete','Revise','Pending Next Step','Quoted','Awaiting Vendor Response','Awaiting Customer Response','Parts On Order','Shipped Partial Order','Awaiting SubContract Parts Work','Picking List Printed','Waiting on BOL / Charges','Quote Sold','Awaiting Vendor Confirmation','Ready To Ship'];
var CArr = ['#99FF99','#FA5959','#FFFF33','#FFCCCC','#FFCC99','#FF9999','#FF6666','#FFB266','#66FFFF','#FF9333','#3399FF','#FF66B2','#CC99FF','#FFE5CC']

for (var i = 0; i < values.length; i++) {
if (values[i][0] !== "") { // only if A is not empty
for (var j = 0; j < values[i].length; j++) {
if (values[i][j] !== "") {
cIndex = TArr.indexOf(values[i][19]);
if (cIndex != -1) {
range.getCell(i + 1, j + 1).setBackground(CArr[cIndex]);
}
}
}
}
}
}
}

最佳答案

如果你有一个包含 T 值的数组 (TArr) 和另一个包含相同顺序的相应颜色 (CArr) 的数组,你可以这样设置颜色:在 TArr 中找到 T 值的索引并设置颜色到 CArr[index],如果 A 不为空,否则为 'none'。

单元格 T 每行只需要检查一个以找到相应的颜色。

var cIndex;
var cColor;
var TArr = ['Complete', 'Revise', ...];
var CArr = ['#99FF99', 'FA5959', ...];

for (var i = 0; i < values.length; i++) {
// find index of status (T) in TArr
cIndex = TArr.indexOf(values[i][19]);
// find the corresponding color in CArr
cColor = ((cIndex != -1) && (cIndex < CArr.length)) ? CArr[cIndex] : 'none';
for (var j = 0; j < values[i].length; j++) {
if (values[i][0] !== "") { // if A is not empty
if (values[i][j] !== "") { // if cell is not empty, set color
range.getCell(i + 1, j + 1).setBackground(cColor);
}
} else { // A is empty
range.getCell(i + 1, j + 1).setBackground('none');
}
}
}

关于javascript - 删除 a 列中没有任何内容的行的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54535746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com