如何从标题标签获取A1表示法中的列范围?

时间:2013-09-25 14:26:36

标签: javascript google-apps-script

我目前正在使用此代码,但它并不像我想象的那样简单:

 var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
 var comCol = headers[0].indexOf('Header Label');

 rng = sheet.getRange(1, comCol + 1);

 var colStr = rng.getA1Notation();
 var colLtr = colStr.charAt(0);
 //Logger.log(colLtr+":"+colLtr); Should output something like "P:P"
 var range = ss.getSheets()[0].getRange(colLtr+":"+colLtr);

我正在选择第一行,创建一个值数组,&很简单地搜索那个数组。我认为笨重的部分是构成一个完整的列范围。在A1表示法中,这看起来像“A:A”。

也许我过分思考应该有lookupCol(String)函数,甚至是getRangeOfCol(Index)函数。

2 个答案:

答案 0 :(得分:1)

尝试这样的事情

var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
 var comCol = headers[0].indexOf('Header Label');
 var comLtr= String.fromCharCode( 65 + comCol );
 var range = ss.getSheets()[0].getRange(comLtr +":"+colLtr);

答案 1 :(得分:0)

为了允许列AA及更高版本,假设标题标签位于第1行,我将定义colLtr的行更改为:

var colLtr = colStr.substr(0, colStr.indexOf('1'));