我正在嘗試根據背景顏色清除(重置)作業表上的單元格值。我找到并更改了以下 3 個現有腳本。它們都正確執行而沒有任何錯誤,但它們都沒有清除表單。
這是我的電子表格的鏡像副本的鏈接。
//////////////////////////////////
//https://stackoverflow.com/questions/70788737/clear-cell-contents-based-on-color-in-google-sheets
function ClearYellow1() {
var colorToDelete = '#CDCDB4';
var gs = SpreadsheetApp.getActive();
var sn = gs.getSheetByName('Temp');
var data = sn.getDataRange().getValues();
for (var r = 0; r < data.length; r ) {
for (var c = 0; c < data[0].length; c ) {
var cellBgColor = sn.getRange(r 1, c 1).getBackground();
if (cellBgColor === colorToDelete) {
sn.getRange(r 1,c 1).clear(); //for clearing values only use
//sn.getRange(r 1, c 1).deleteCells(SpreadsheetApp.Dimension.ROWS); //for deleting cells
}
}
}
}
/////////////////////////////////////
//https://stackoverflow.com/questions/65266797/change-cell-value-based-on-the-cells-background-color-in-google-sheets
function ClearYellow2() {
const sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Temp");
const rng = sheet1.getDataRange();
const colors = rng.getBackgrounds();
const values = rng.getValues();
colors.map((r,i)=>r.map((c,j)=>{
if(c=='#CDCDB4'){
values[i][j]="g";
}}));
rng.clearContent();
rng.setValues(values);
}
///////////////////////////////////////////
//https://stackoverflow.com/questions/68521942/google-sheets-delete-cell-with-specific-background-color
function ClearYellow3() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
//var sheet = ss.getSheets()[0];
var sheet = ss.getSheetByName("Temp");
var range = sheet.getDataRange();
var bgColors = range.getBackgrounds();
var data = range.getValues() // <--- get all the data as an array
for (var i=0; i<bgColors.length; i ) {
for (var j=0; j<bgColors[i].length; j ) {
if (bgColors[i][j].toUpperCase() === '#CDCDB4') {
data[i][j] = ''; // <--- change the array
}
}
}
range.setValues(data); // <--- put the array back on the sheet
}
///////////////////////////////////////////////////////////
有什么建議?
uj5u.com熱心網友回復:
您應該從一個單元格中提取顏色來解決問題。
對代碼稍作修改
function ClearYellow3() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Temp");
var color = sheet.getRange('C2').getBackground()
var range = sheet.getDataRange();
var bgColors = range.getBackgrounds();
var data = range.getValues()
for (var i=0; i<bgColors.length; i ) {
for (var j=0; j<bgColors[i].length; j ) {
if (bgColors[i][j] == color) {
data[i][j] = '';
// bgColors[i][j] = "#ffffff";//set to white
}
}
}
range.setValues(data).setBackgrounds(bgColors);//reset values and backgrounds
}
uj5u.com熱心網友回復:
根據背景顏色重置值:
我將一些顏色設定為淺黃色 3 并使用除錯器查看值是什么并使用該值進行比較
function ClearYellow3() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName("Sheet0");
var range = sheet.getDataRange();
var bgColors = range.getBackgrounds();
var data = range.getValues()
for (var i=0; i<bgColors.length; i ) {
for (var j=0; j<bgColors[i].length; j ) {
if (bgColors[i][j] == "#fff2cc") {
data[i][j] = '';
bgColors[i][j] = "#ffffff";//set to white
}
}
}
range.setValues(data).setBackgrounds(bgColors);//reset values and backgrounds
}
這第一次作業沒有任何問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/431153.html
下一篇:谷歌表添加重復的增量數字
