首页 > 解决方案 > 如何在所有工作表上固定一个公共列

问题描述

我正在构建一个跨越多张工作表的谷歌工作表。为方便起见,我有一个索引页面,其中包含指向少数选择表的超链接。我希望固定此列以显示在所有工作表上。

我在网上找到的大多数建议都是关于将列从索引页复制到所有工作表,我发现这很难维护和扩展。

有没有更好的方法来实现这一目标?


标签: google-sheets

解决方案


建议:

也许您可以将下面的示例绑定脚本添加到您的电子表格文件中,然后从编辑器中保存并运行它:

要在 Google 表格中创建绑定脚本,请打开电子表格并点击扩展程序或工具 > Apps 脚本或脚本编辑器

function onEdit() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var indexPage = ss.getSheetByName("Sheet").getRange("A:A");
 var sheets = ss.getSheets();

  sheets.forEach(cursheet => {
    indexPage.copyTo(ss.getSheetByName(cursheet.getName()).getRange("A:A")); //Copies index on every sheets' column A
    ss.getSheetByName(cursheet.getName()).setFrozenColumns(1); //// Freezes the first column on every sheet
  });
}

该脚本也将在您每次编辑时自动运行(这意味着每次Enter在编辑/添加新单元格值后按下键)您的电子表格文件,因为它配置了onEdit触发器

样本结果

从 Apps 脚本编辑器保存并运行脚本后:

Sheet

在此处输入图像描述

Wish List

在此处输入图像描述

Laptops

在此处输入图像描述

Apparel

在此处输入图像描述

参考:

Google Apps 脚本

Apps 脚本:setFrozenColumns(columns)


推荐阅读