gpt4 book ai didi

google-apps-script - Google Script - 除一个特定单元格值外的清除范围

转载 作者:行者123 更新时间:2023-12-04 10:32:21 27 4
gpt4 key购买 nike

我有一个简单的功能来清理一个谷歌表中两个特定范围内的所有单元格的内容。

function clearRange() {
var activeSheet = SpreadsheetApp.openById("idofmytable").getSheetByName("name");
activeSheet.getRange('B9:H35').clearContent();
activeSheet.getRange('K9:Q35').clearContent();
}

我想更新函数并让脚本清除所有单元格,除非单元格的值为“10”。如果单元格的值为 10,则不应将其清除。

我该怎么做呢?

最佳答案

  • 您想清除所有单元格中不是 10 值的内容。在工作表中。
  • 您想使用 Google Apps 脚本来实现这一点。

  • 如果我的理解是正确的,这个答案怎么样?请将此视为几种可能的答案之一。

    在这个答案中,我使用了以下流程。
  • 从工作表中的数据范围中检索所有值。
  • 检索没有值 10 的单元格范围作为 a1Notation。
  • 使用 getRangeList 清除内容.

  • 修改后的脚本:
    function clearRange() {
    var activeSheet = SpreadsheetApp.openById("idofmytable").getSheetByName("name");

    var columnToLetter = function(column) { // This is from https://stackoverflow.com/a/21231012/7108653
    var temp, letter = '';
    while (column > 0) {
    temp = (column - 1) % 26;
    letter = String.fromCharCode(temp + 65) + letter;
    column = (column - temp - 1) / 26;
    }
    return letter;
    };

    // Retrieve all values.
    var values = activeSheet.getDataRange().getValues();

    // Retrieve the cell range as a1Notation, when the cell value is not 10.
    var ranges = values.reduce(function(ar, row, i) {
    row.forEach(function(col, j) {if (col != 10) ar.push(columnToLetter(j + 1) + (i + 1))});
    return ar;
    }, []);

    // Clear the content of the retrieved ranges.
    activeSheet.getRangeList(ranges).clearContent();
    }

    引用:
  • Class RangeList
  • clearContent() of Class RangeList

  • 如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

    添加:
  • 您想清除“B9:H35 & K9:Q35”范围内不是10 值的单元格中的内容。在工作表中。

  • 示例脚本:
    function clearRange() {
    var activeSheet = SpreadsheetApp.openById("idofmytable").getSheetByName("name");

    var columnToLetter = function(column) { // This is from https://stackoverflow.com/a/21231012/7108653
    var temp, letter = '';
    while (column > 0) {
    temp = (column - 1) % 26;
    letter = String.fromCharCode(temp + 65) + letter;
    column = (column - temp - 1) / 26;
    }
    return letter;
    };

    // Retrieve values from B9:H35 and K9:Q35.
    var value1 = activeSheet.getRange('B9:H35').getValues();
    var value2 = activeSheet.getRange('K9:Q35').getValues();

    // Retrieve the cell range as a1Notation, when the cell value is not 10.
    var colOffset1 = 2;
    var colOffset2 = 11;
    var rowOffset = 9;
    var ranges1 = value1.reduce(function(ar, row, i) {
    row.forEach(function(col, j) {
    if (col != 10) ar.push(columnToLetter(j + colOffset1) + (i + rowOffset))});
    return ar;
    }, []);
    var ranges2 = value2.reduce(function(ar, row, i) {
    row.forEach(function(col, j) {
    if (col != 10) ar.push(columnToLetter(j + colOffset2) + (i + rowOffset))});
    return ar;
    }, []);

    // Clear the content of the retrieved ranges.
    activeSheet.getRangeList(ranges1).clearContent();
    activeSheet.getRangeList(ranges2).clearContent();
    }

    关于google-apps-script - Google Script - 除一个特定单元格值外的清除范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60361588/

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