0

2010年3月29日,Jason Hale想要使用電子表格光標位置爲他正在編寫的Javascript應用選擇電子郵件地址 - 請參閱http://productforums.google.com/forum/#!topic/apps-script/U10q44vptPU。受訪者建議使用getActiveSelection和伴隨的getRowIndex/getColumnIndex方法。不幸的是,他們沒有爲Hale工作,兩年後,當我想寫一個類似的應用程序時,他們不適合我。遊標的位置對getRowIndex和getColumnIndex沒有影響。這些方法總是返回1,這是無用的,可能是一個錯誤。 Google Apps缺少遊標服務,例如Python提供的遊標服務。有沒有人發現任何Google Apps返回的內容在這種情況下可能有用?通過Javascript方法從Google電子表格獲取光標行/列

+0

做任何職位回答你的問題?如果是這樣,請使用「打勾」選項將該響應標記爲答案。如果沒有,你應該編輯你的問題並澄清它,所以請有機會給你一個更好的答案。 –

回答

4

你試過了這樣一個簡單的功能嗎?

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

或這樣更 '通用' 的功能:

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

下面的代碼對我的作品。它提示我與我的當前位置在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()); 
} 
+0

爲什麼你要爲'var range = ss.getActiveCell();'創建一個變量,然後不用'Browser.msgBox(「你選擇了行」+ ss.getActiveCell()。getRow());'?你可以說'range.getRow()'。 – BadHorsie

+0

刪除冗餘代碼。 –

相關問題