2015-07-03 68 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

相關問題