如何使用列标题引用Google Apps脚本电子表格中的单元格

use*_*765 12 google-sheets google-apps-script

我有几个Google表格,我连接并更新它们之间的单元格.现在我必须使用R1C1或A1类型引用来定义基于特定列获取或设置单元格.

如果添加了新列,则所有这些引用现在都已关闭.

每个工作表中的第一行将列标题作为这些单元格中的值.

我可以以[columnHeader] 5的格式引用该列中第五行的单元格的单元格吗?

我想将每个单独的列标题设置为"命名范围",但我仍然坚持能够使用[命名范围] 5引用单元格.

我想我可以使用一些动态定义100个变量到当前列号(R1C1)格式(在所有工作表中)的方法,然后尝试在我的单元格引用中使用那些伪标题变量.但是我可能每天都会运行100次脚本,这种可怕的低效率会伤害我的工程师.

提前致谢.

夹头

Ser*_*sas 15

我使用一个小辅助函数,它返回列索引作为我可以使用的数字 getRange(row,col)

这是非常基本的,如下所示:

function getColByName(name){
  var headers = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getDataRange().getValues().shift();
  var colindex = headers.indexOf(name);
  return colindex+1;
}
Run Code Online (Sandbox Code Playgroud)

像这样测试:

function testgetColByName(){
  Logger.log(getColByName('header string'));  
}
Run Code Online (Sandbox Code Playgroud)

  • 啊,塞尔; 我无法理解为什么你选择整个范围并使用shift().然后我终于找到了一个引用"shift()方法删除数组的第一项,并返回该项目." 很棒的工作!我正在沿着限制范围的路径走到最顶行(我真的只想要标题); 但你的方法处理了.向你致敬! (3认同)