You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Google Sheets脚本仅清除B-Y列格式而非整张工作表

修改说明

原代码清除全表格式的核心逻辑是:调用getDataRange()获取整张工作表的有数据区域,再通过仅粘贴内容的方式清除原有格式。仅需将这一步的目标范围调整为B到Y列的全部行即可。

核心修改点

将循环内的原有代码:

var range = sheet.getDataRange();
range.copyTo(range, { contentsOnly: true });

替换为:

// 获取工作表总共有多少行
var totalRow = sheet.getMaxRows();
// 定义范围:第1行开始,第2列(B列)开始,覆盖所有行,共24列(B到Y总共24列)
var range = sheet.getRange(1, 2, totalRow, 24);
range.copyTo(range, { contentsOnly: true });

修改后完整代码

function pricesearchsheet2() {
    var date = new Date();
    var currenthour = date.getHours();
    var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
    var cellcolour = "RED";
    var celltoleft = 0;
    var pastprice = 0;
    var currentprice = 0;
    var sending = "n";
    var tradingemailsfield = "C4";
    var playername = "null";
    var playernamecell = "A3";
    var targetcell = 1

    // 按当前小时设置目标单元格
    if (currenthour == 0) {
        var targetcell = "B6";
        var celltoleft = "A6";
    }
    if (currenthour == 1) {
        var targetcell = "C6";
        var celltoleft = "B6";
    }
    if (currenthour == 2) {
        var targetcell = "D6";
        var celltoleft = "C6";
    }
    if (currenthour == 3) {
        var targetcell = "E6";
        var celltoleft = "D6";
    }
    if (currenthour == 4) {
        var targetcell = "F6";
        var celltoleft = "E6";
    }
    if (currenthour == 5) {
        var targetcell = "G6";
        var celltoleft = "F6";
    }
    if (currenthour == 6) {
        var targetcell = "H6";
        var celltoleft = "G6";
    }
    if (currenthour == 7) {
        var targetcell = "I6";
        var celltoleft = "H6";
    }
    if (currenthour == 8) {
        var targetcell = "J6";
        var celltoleft = "I6";
    }
    if (currenthour == 9) {
        var targetcell = "K6";
        var celltoleft = "J6";
    }
    if (currenthour == 10) {
        var targetcell = "L6";
        var celltoleft = "K6";
    }
    if (currenthour == 11) {
        var targetcell = "M6";
        var celltoleft = "L6";
    }
    if (currenthour == 12) {
        var targetcell = "N6";
        var celltoleft = "M6";
    }
    if (currenthour == 13) {
        var targetcell = "O6";
        var celltoleft = "N6";
    }
    if (currenthour == 14) {
        var targetcell = "P6";
        var celltoleft = "O6";
    }
    if (currenthour == 15) {
        var targetcell = "Q6";
        var celltoleft = "P6";
    }
    if (currenthour == 16) {
        var targetcell = "R6";
        var celltoleft = "Q6";
    }
    if (currenthour == 17) {
        var targetcell = "S6";
        var celltoleft = "R6";
    }
    if (currenthour == 18) {
        var targetcell = "T6";
        var celltoleft = "S6";
    }
    if (currenthour == 19) {
        var targetcell = "U6";
        var celltoleft = "T6";
    }
    if (currenthour == 20) {
        var targetcell = "V6";
        var celltoleft = "U6";
    }
    if (currenthour == 21) {
        var targetcell = "W6";
        var celltoleft = "V6";
    }
    if (currenthour == 22) {
        var targetcell = "X6";
        var celltoleft = "W6";
    }
    if (currenthour == 23) {
        var targetcell = "Y6";
        var celltoleft = "X6";
    }
    if (currenthour == 24) {
        var targetcell = "Z6";
        var celltoleft = "Y6";
    }
    for (var sheet of sheets) {
        sheet.getRange(targetcell).setValue('=--SPLIT(REGEXEXTRACT(JOIN(",",IMPORTDATA(B1)),"LCPrice"":""(.*)"), CHAR(34))');
        SpreadsheetApp.flush();
        
        // 以下为修改后的清格式逻辑,仅清除B-Y列所有行格式
        var totalRow = sheet.getMaxRows();
        var range = sheet.getRange(1, 2, totalRow, 24);
        range.copyTo(range, { contentsOnly: true });
        
        // 对比价格设置单元格颜色
        var pastprice = sheet.getRange(celltoleft).getValue();
        var currentprice = sheet.getRange(targetcell).getValue();
        if (currentprice == pastprice) {
            cellcolour = "orange"
        } else if (currentprice > pastprice) {
            cellcolour = "green"
        } else {
            cellcolour = "red"
        }
        sheet.getRange(targetcell).setBackground(cellcolour);
        
        // 满足条件发送邮件
        var tradingemailsfield = sheet.getRange('C4').getValue();
        var playersname = sheet.getRange('A3').getValue();
        if (tradingemailsfield == "y") {
            MailApp.sendEmail("my@mail.co.uk", "Price Alert For "+playersname, "The price of "+playersname+" has moved from "+pastprice+" to "+currentprice+" ");   
        }
    }
}

内容的提问来源于stack exchange,提问作者hamd01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 21:24:03