10. Juni 2012, 07:48 von JackTheLabRat

Abrufen der Cursorzeile / -spalte aus einer Google-Tabelle mithilfe einer JavaScript-Methode

Am 29. März 2010 wollte Jason Hale die Position des Tabellenkalkulationscursors verwenden, um eine E-Mail-Adresse für eine von ihm geschriebene Javascript-App auszuwählenhttp://productforums.google.com/forum/#!topic/apps-script/U10q44vptPU. Die Befragten schlugen die Methoden getActiveSelection und getRowIndex / getColumnIndex vor. Leider arbeiteten sie nicht für Hale und sie arbeiteten zwei Jahre später nicht für mich, als ich eine ähnliche Bewerbung schreiben wollte. Die Position des Cursors hat keine Auswirkungen auf getRowIndex und getColumnIndex. Diese Methoden geben immer 1 zurück, was nutzlos und wahrscheinlich ein Fehler ist. In Google Apps fehlt ein Cursordienst wie der von Python. Hat jemand etwas gefunden, das Google Apps zurückgibt und das in diesem Zusammenhang nützlich sein könnte?

questionAnswers (0)

10. Juni 2012, 06:15 von 4,045

Der folgende Code funktioniert für mich. Es fordert mich mit der Zeilennummer meiner aktuellen Position in der Tabelle auf:

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());
}
10. Juni 2012, 06:13 von 35.9k

Haben Sie eine einfache Funktion wie diese ausprobiert?

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);
  }

oder eine 'universellere' Funktion wie diese:

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);
  }

yourAnswerToTheQuestion