gpt4 book ai didi

google-apps-script - 根据单元格值隐藏列

转载 作者:行者123 更新时间:2023-12-04 18:11:16 27 4
gpt4 key购买 nike

在我的谷歌电子表格 A 中,我使用 TRANSPOSE 和 IMPORTRANGE 公式的组合从日历电子表格 B 导入数据,以便填写事件的工作时间表。因为在每个日期有 3 个事件槽,它们并不总是被填满,所以我得到了很多过时的列。

表布局:

row1:  01-01-2013  01-01-2013  01-01-2013  02-01-2013
row2: Event_ID Event_ID Event_ID Event_ID
row3: Event_name Event_name Event_name Event_name

第 1 行和第 2 行包含自动生成的日期和 event_ID,因此它们永远不会为空。细胞编号当没有事件添加到该插槽时,3 显示为空,但实际上那里有一个 CONTINUE 公式可以从单元格 A1 继续导入范围公式。

我正在寻找一个脚本来自动隐藏单元格中的列。 3 不包含导入的数据。

对 JavaScript 一无所知(但愿意学习),我尝试将现有脚本中的部分组合起来,但此时我无法理解这些代码......

最佳答案

以下代码可以解决问题:

function onOpen() {
// get active spreadsheet
var ss = SpreadsheetApp.getActiveSpreadsheet();

// create menu
var menu = [{name: "Hide columns", functionName: "hideColumn"},
{name: "Show all columns", functionName: "showColumn"}];

// add to menu
ss.addMenu("Check", menu);
}

function hideColumn() {
// get active spreadsheet
var ss = SpreadsheetApp.getActiveSpreadsheet();

// get first sheet
var sheet = ss.getSheets()[0];

// get data
var data = sheet.getDataRange();

// get number of columns
var lastCol = data.getLastColumn()+1;

Logger.log(lastCol);

// itterate through columns
for(var i=1; i<lastCol; i++) {
if(data.getCell(3, i).getValue() == '') {
sheet.hideColumns(i);
}
}
}

function showColumn() {
// get active spreadsheet
var ss = SpreadsheetApp.getActiveSpreadsheet();

// get first sheet
var sheet = ss.getSheets()[0];

// get data
var data = sheet.getDataRange();

// get number of columns
var lastCol = data.getLastColumn();

// show all columns
sheet.showColumns(1, lastCol);
}
  • 在打开文件时创建菜单
  • 第一个菜单选项,隐藏第 3 行为空的所有列
  • 第二个选项,显示所有隐藏的列

  • 请参阅我准备观看它的示例文件: Hide columns based on cell value

    关于google-apps-script - 根据单元格值隐藏列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13568425/

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