On 29 Mar 2010, Jason Hale wanted to use the spreadsheet cursor location to select an e-mail address for a Javascript app he was writing - See http://productforums.google.com/forum/#!topic/apps-script/U10q44vptPU. Respondents suggested the getActiveSelection and concomitant getRowIndex/getColumnIndex methods. Unfortunately, they didn't work for Hale and they didn't work for me two years later when I wanted to write a similar application. The cursor's location has no effect on getRowIndex and getColumnIndex. These methods always return 1, which is useless and probably a bug. Google Apps lacks a cursor service such as the one Python offers. Has anyone found anything that Google Apps returns that might be useful in this context?
The following code works for me. It prompts me with the row number of my current position in the spreaadsheet:
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [ {name: "Test1", functionName: "menuItem1"}];
ss.addMenu("Tests", menuEntries);
}
function menuItem1() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
Browser.msgBox("You have selected row " + ss.getActiveCell().getRow());
}
Have you tried a simple function like this one ?
function getRCposition(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var cell = ss.getActiveCell();
var R = cell.getRow();
var C = cell.getColumn();
Browser.msgBox('Row = '+R+' and Col = '+C);
}
or a more 'universal' function like this :
function getposition(){
var sh = SpreadsheetApp.getActiveSheet();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getActiveRange();
var R = range.getRowIndex();
var C = range.getColumnIndex();
var W = range.getWidth();
var H = range.getHeight();
var A1not = range.getA1Notation();
Browser.msgBox('Row = '+R+' / Col = '+C+' Width = '+W+' / Heigth = '+H+' A1 notation = '+A1not);
}
来源:https://stackoverflow.com/questions/10966631/getting-the-cursor-row-column-from-a-google-spreadsheet-through-a-javascript-met