2015-07-03 66 views
10

我有几张连接并更新它们之间单元格的Google表格。现在我必须使用R1C1或A1类型引用来定义基于特定列的获取或设置单元格。如何使用列标题引用Google Apps脚本电子表格中的单元格

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

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

我可以参考一个格式的单元格,例如[columnHeader] 5为该列中的单元格,第五行吗?

我想将每个单独的列标题设置为'命名范围',但我坚持可以使用[命名范围] 5引用单元格。

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

在此先感谢。

夹头

回答

12

我使用返回列索引作为一个数字,我可以在getRange(row,col)

这是很基本的,是这样使用一个小的辅助函数:

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

测试像这样:

function testgetColByName(){ 
    Logger.log(getColByName('header string')); 
} 
+0

谢谢谢尔,我修改它以处理从列乘号通过传递适当的“getSheetByName”和特定的列标题。 – user1489765

+0

对不起,打太快了。我想补充一点,我接受这个答案。虽然它可能不是最好的(没有反对哔叽)它适用于我。再次感谢Serge。 – user1489765

+3

Ahhh,Serge;我不明白为什么你选择了整个范围,并使用shift()。然后我终于找到了一个对“shift()方法删除数组的第一项并返回该项的引用。”令人敬畏的工作!我正在沿着将范围限制在顶行的路径(我真的只想要标题)。但你的方法处理了这一点。向你致敬! – user1489765

相关问题