2015-07-21 69 views
0

我需要一個腳本來查找谷歌電子表格驅動器的第一個空行,或者因爲在第一個空行中打開這個電子表格。如何獲取谷歌驅動器電子表格中的第一個空行?

所以,我嘗試這樣做:

function onOpen(){ 
var menu = SpreadsheetApp.getUi(); 
menu.createMenu('Audit PS') 
    .addItem('Colar', 'getFirstEmptyRowByColumnArray') 
    .addToUi(); 
} 

function getFirstEmptyRowByColumnArray() { 
    var spr = SpreadsheetApp.getActiveSpreadsheet(); 
    var column = spr.getRange('A:A'); 
    var values = column.getValues(); 
    var ct = 0; 
    while (values[ct] && values[ct][0] != "") { 
    ct++; 
    } 
return (ct+1); 
} 

菜單創建,並通過點擊它來運行該腳本。但電子表格中沒有任何反應。

有什麼不對?

+0

爲什麼會發生任何事情?代碼不會改變任何東西,甚至不會在任何地方顯示結果 –

+0

那麼如何獲得這個腳本返回第一個空行呢? –

+0

你是什麼意思? –

回答

0

這是有點不清楚你試圖完成什麼,但我會盡我所能來幫助基於我認爲你會去。
這聽起來像你想選擇一列電子表格中的最後一行。不知道你的意思是獲取單元格對象還是將其設置爲活動狀態。
因此,首先,您只選擇電子表格,而不是表格,因此我建議將getActiveSpreadsheet()更改爲getActiveSheet()。 因此,現在讓我們假設您的代碼如下所示:
var sheet = SpreadsheetApp.getActiveSheet();
要獲取此工作表中包含數據的單元格範圍,請在工作表上使用.getDataRange()函數。然後可以使用.getLastRow()函數獲取包含數據的最後一行。一旦你知道這一點,你有你需要的所有信息。如果您想獲得單元對象,你的代碼應該是這樣的」

var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = sheet.getDataRange().getLastRow(); var cell = sheet.getRange(lastRow + 1, 1); // Substituted whatever column for the second argument

您還沒有指定你想要做的,一旦你得到的細胞,所以你必須自己弄清楚剩下什麼!希望這會有所幫助。

+0

謝謝喬納森!我想將光標指向第一個空單元格,這樣我就不會手動找到它。我嘗試了函數selectFirstEmptyRow()和getFirstEmptyRowByColumnArray(),但是,它只在電子表格中填充了幾行時才運行。這個腳本中是否有任何限制?我如何解決它? –

+0

我對錶單並不是非常有經驗,但我相信你可以使用上面提供的代碼來完成這個工作,並使用.setActiveRange或.setActiveSelection函數並提供單元格變量作爲參數。 –

相關問題